一 SCP命令介绍
scp(Secure Copy) 是基于 SSH 协议的加密文件传输命令,用于在本地与远程主机 或两台远程主机之间安全复制文件/目录,默认使用 TCP 22 端口。
核心作用
-
加密传输:所有数据(含认证信息)经 SSH 加密,防止窃听与篡改。
-
三种传输模式:
-
本地 → 远程
-
远程 → 本地
-
远程主机 A → 远程主机 B(流量可不经过本地)
-
-
保留属性 :支持保留文件权限、时间戳(需
-p参数)。 -
轻量高效:资源占用低,适合小文件快速传输;大文件或复杂同步场景建议优先用 sftp/rsync(OpenSSH 官方已提示 scp 协议较旧)。
二 Linux系统SCP文件传输命令
1.Linux SCP命令将Linux系统本地文件传输到服务器,需前提知道服务器的地址、ssh账号和密码
scp /soft/* root@1.1.1.1:/soft/
scp 文件名称 root@1.1.1.1:/soft/
scp *.* root@1.1.1.1:/soft/
传输文件示例

2.通过其他Linux服务器下载文件到Linux本地
scp user@192.168.1.100:/var/log/app.log ./ #下载文件到跟目录
scp user@192.168.1.100:/data/backup.tar.gz ./backup_new.tar.gz #下载文件并重命名
scp -r user@192.168.1.100:/project/code ./local_code #下载整个目录,或者递归下载整个目录
关键参数说明
-
-P <port>:指定 SSH 非默认端口(注意是大写 P,如
-P 2222) -
-r:递归复制目录 -
-C:启用压缩传输(适合文本/代码类大文件) -
-p:保留原文件时间戳、权限等元数据
-
-i <key>:使用私钥认证(如
-i ~/.ssh/id_rsa) --l <limit>:限速(单位 Kbits/s,避免占满带宽) --v:显示详细过程,便于调试连接问题
注意事项
-
本地路径末尾加
.表示当前目录;若为绝对路径(如/home/user/)则直接写入该目录。 -
执行时需输入远程用户密码(或依赖 SSH 密钥免密配置)。
-
若网络不稳定或需断点续传、增量同步,建议改用
rsync或sftp。 -
中文文件名乱码通常因两端编码不一致导致,请确保终端与服务器均使用 UTF-8。
注意:现代 OpenSSH 版本已逐步推荐用 sftp 或 rsync 替代 scp,但 scp 仍广泛用于简单一次性传输场景。
三 Windows系统SCP文件传输命令(新版Windows系统cmd或者powershell都自带scp命令了)
1.将Windows系统本地文件上传到Linux系统
scp 本地路径 用户名@远程 IP:远程路径,举例:scp C:\test.txt root@192.168.1.100:/home/。
如果上传整个目录需加上 -r 参数,举例: scp -r C:\project root@192.168.1.100:/home/。
如果远程 SSH 端口非 22,使用 -P 参数(大写),例如 scp -P 2222 file.txt user@ip:/path/
2.将Linux系统文件下载到Windows系统本地
scp 用户名@远程 IP:远程路径 本地路径,例如 scp root@192.168.1.100:/home/log.txt C:\backup\。