如何在 Linux 中使用 SCP 安全地传输文件 | Linux 中国
在网络上文件传输可以通过各种不同的方式和协议来完成。远程复制文件常用的协议是 Rsync、SCP 和 SFTP。在本文中,我们将了解什么是 SCP 以及如何在 Linux 和类 Unix 操作系统中使用 SCP 在本地和远程计算机之间安全地传输文件。
什么是 SCP?
SCP,代表 安全复制(Secure Copy),它是一个命令行程序,在 Linux 和类 Unix 操作系统中以安全的方式在本地和远程系统之间,或在两个远程系统之间复制文件和目录。
使用 scp
命令,你可以安全地复制文件或目录:
- 从本地到远程系统
- 从远程系统到本地
- 在两个远程系统之间
使用 scp
命令传输数据时,文件和目录都是加密的。因此,即使网络被破坏,作恶者也无法获得任何有意义的数据。
SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文件。几乎所有现代 Linux 和 Unix 发行版都预装了 OpenSSH,所以不必费心安装它。
提醒一句:
根据 openSSH 开发人员的官方公告:
scp 协议已经过时了,它不灵活且不易修复。我们建议使用更现代的协议,如sftp
和rsync
来代替。
参考 - https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html
但是,大多数用户仍然更喜欢 SCP 协议。因为,SCP 处理远程文件传输比同行 SFTP 和 Rsync 更快。
另外,SCP 的工作原理与 cp
命令完全相同,而 rsync
则会判断源目录是否有结尾斜杠而出现不同的行为。看一看下面的命令:
-
rsync source destination/
- 将source
目录复制到destination
文件夹内。 -
rsync source/ destination/
- 将source
目录的内容复制到destination
文件夹中。
所以,你必须反复检查是否在路径中添加了斜杠。
我个人使用 Rsync 在两台主机之间复制大文件,使用 SCP 在网络上复制单个文件。
SCP 命令语法
SCP 的通用语法如下:
scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-S program] source ... target
相关文章