最常用、最稳妥的文件传输方式是scp命令,它基于ssh加密通道,支持上传下载、目录递归、跨服务器直传,并可通过密钥认证提升效率与安全性,使用前需确认网络连通性、ssh端口开放及目标目录写权限。

最常用、最稳妥的方式是用 scp 命令,它基于 SSH 加密通道,无需额外服务,开箱即用,适合绝大多数场景。
基础上传与下载
传文件到远程服务器:
scp /本地/路径/文件名 user@192.168.1.100:/远程/目录/- 若目标端口不是 22(比如 2222),加
-P 2222(注意大写 P) - 想保留时间戳和权限,加上
-p参数
从远程服务器拉文件回来:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
scp user@192.168.1.100:/远程/路径/文件名 ./(.表示当前目录) - 下载整个目录,必须加
-r:例如scp -r user@192.168.1.100:/var/log/nginx ./logs
两台远程服务器之间直传
不用先下载到本地再上传,节省带宽和时间:
scp userA@192.168.1.10:/data/app.tar.gz userB@192.168.1.20:/backup/- 执行时会先后提示输入两台服务器的密码(或自动通过密钥认证)
- 确保两台服务器都允许 SSH 登录,且防火墙放行 22 端口(或自定义端口)
提升效率与安全性
避免反复输密码、适配自动化任务:
- 生成密钥对:
ssh-keygen -t ed25519 - 推送公钥到目标服务器:
ssh-copy-id -p 2222 user@192.168.1.100 - 之后 scp 就不再需要手动输密码,脚本也能无交互运行
- 如需限速防占满带宽,加
-l 1000(单位 Kbit/s)
传输前务必确认的三件事
很多“命令没错却传不了”的问题,其实出在前置环节:
-
网络连通性:先
ping 192.168.1.100看是否可达 -
SSH 端口开放:用
nc -vz 192.168.1.100 22检查端口是否响应 -
目标目录写权限:确认你登录的用户对远程路径有写入权限,比如
/home/user/data通常没问题,但/etc或/root可能需要 sudo 或换用户










