在windows系统与Linux系统交互的时候,我们通常会有这样的需求:将一份文件从这台Linux机器上传到另外的一台Linux机器上,也就是跨主机之间传输。
我们在使用虚拟机和云服务器时,通常是使用像Xshell或者XPIPE这样的远程登录软件来解决这个难题。
但是😂
如果两台主机毫不相干,也就是说不是宿主机之间的关系呢?
这时候,scp这个命令就排上用场了
SCP[Secure Copy Pr otocol]
是一个基于SSH加密协议的文件传输命令,用于在本地主机和远程主机或者远程主机和远程主机之间安全的负责文件或者目录,以下是详细的scp命令介绍,涵盖所有的用法参数和使用示例
scp [选项] 源文件 目标路径
home/user/file.txt
username@主机名:绝对路径
选项 | 作用 |
---|---|
-P<端口> | 指定SSH端口,默认是22 |
-p | 保留文件的修改时间,访问权限等等 |
-r | 递归复制整个目录 |
-c | 启动私钥传输(加快大文件的传输数率) |
-q | 禁默模式(不显示传输速度和错误) |
-i<私钥文件> | 指定SSH私钥文件(免密码登录) |
-l<带宽限制> | 限制带宽(单位:Kbit/s,如-1 1000) |
-v | 显示详细排错信息(调试时有用) |
scp /local/path/file.txt user@remote:/remote/path
- 说明:将本地 file.txt
复制到远程主机的 /remote/path/
目录。
PS C:\Users\20510> scp C:\FFmpeg\ffmpeg-7.0.2-essentials_build\README.txt lqw@192.168.28.74:/home/lqw/VStream
ssh: connect to host 192.168.28.74 port 22: Connection refused
C:\Windows\System32\OpenSSH\scp.exe: Connection closed
来看,我将windows下的一个文本文件试图通过SCP命令传送到ubuntu虚拟机虚拟机上,但是出错了,出错的原因有两个:
sudo chown lqw:lqw /home/lqw/VStream/
scp -P 3345 C:\FFmpeg\ffmpeg-7.0.2-essentials_build\README.txt lqw@192.168.28.74:/home/lqw/VStream
来看,相关文件就被传输到了相关的文件夹下
scp user@remote:/remote/path/file.txt /local/path/
file.txt
下载到本地。scp -r /local/folder user@remote:/remote/path/
folder
目录到远程。scp /local/file user@remote:/remote/
-r
-P 2222
-i ~/.ssh/id_rsa
p /local/file user@remote:/remote/`-r
-P 2222
-i ~/.ssh/id_rsa
-v
查看详细日志扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有