SCP?这就是SSH的便捷文件传输功能,对吗?
好吧,不完全是。这更像是黑客。或两种协议的无证件,非标准化混搭。让我们看一下令人兴奋的(和令人恐惧的)细节。
什么是scp?
安全复制协议(SCP)允许我们在两台计算机之间移动文件(和目录)。使用起来很简单:
scp local_file.txt remote_host:/home
这会将local_file.txt具有域名的另一台计算机(通常是服务器)复制remote_host到该/home目录中。
SCP问题
到目前为止,SCP听起来还不错。令人讨厌的设计和缺乏规范是不幸的,但这是一个足够简单的工具,似乎对很多人都有效。但是,现在让我们来看一些现实问题。
- 大文件传输,没有压缩占用网络资源。
- openSSH8.0更新提示:scp协议已经过时,不灵活,也不容易修复。我们建议使用更现代的协议,如sftp和rsync代替文件传输。
性能对比,使用tar命令实现远程拷贝提高复制效率和安全,如下测试?
# Copy a local folder with 10000 files
$ find /tmp/big_folder/ -type f | wc -l
10000
# Using scp
$ time scp -r -q /tmp/big_folder/ server:/tmp/big_folder
________________________________________________________
Executed in 882.99 millis fish external
usr time 114.09 millis 0.00 micros 114.09 millis
sys time 278.46 millis 949.00 micros 277.51 millis
# Using tar over ssh
$ time sh -c "tar cf - /tmp/big_folder | ssh server 'tar xC /tmp/ -f -'"
tar: Removing leading '/' from member names
________________________________________________________
Executed in 215.68 millis fish external
usr time 93.22 millis 0.00 micros 93.22 millis
sys time 66.51 millis 897.00 micros 65.62 millis
引用:https://gravitational.com/blog/scp-familiar-simple-insecure-slow/