Linux中的scp命令介绍

512 阅读3分钟

scp的作用是:从本地系统复制文件到远程系统,反之亦然,或者在两个远程系统之间复制文件。它的工作原理与cp命令相同,但通过网络,并使用ssh进行加密和安全。

目录:

  1. 简介
  2. 语法
  3. 命令
  4. 摘要
  5. 参考文献

简介

scp命令对于从远程系统安全地复制文件和目录非常有用。
为了安全起见,它通过SSH
协议工作,因此涉及的两个系统都必须配置SSH。

SSH在两个系统之间提供一个安全的加密隧道。
由于SSH使用认证,所以需要密码等详细信息。

语法

scp [OPTION] [user@]src:]file1 [user@]dest:]file2
  • [user@]src:]file1代表源文件。
  • [user@]dest:]file2代表目标文件。
  • 常用的选项可能包括。
  • -r表示递归复制整个目录。
  • -C表示启用压缩。
  • -l用来限制带宽。
  • -o用于传递ssh选项。
  • -P指定连接到远程系统上的端口。
  • -v打印关于进度的调试信息。
  • -q禁用进度表。
  • -p用于保留原始文件的修改时间、访问时间和模式。
  • -4表示使用IPv4
  • -6用于使用IPv6
  • -c指定一个密码。

命令

要从本地主目录images复制一个文件image.iso到远程机器remote.com*的目录remoteImages,我们要写:

scp ~/image.iso user@remote.com:~/remoteImages

当我们执行这个命令时,系统会提示我们输入remote.com的密码。

我们还可以使用一个ip地址,如下所示:

scp image.iso user@169.173.78.12:~/remoteImages

我们还可以指定在远程系统中复制后的文件名称:

scp image.iso user@remote.com:~/remoteImages/newName.iso

要复制多个文件,我们写:

scp user@remote.com:~/images/*.iso ~/remoteImages

上述命令将本地images目录中所有扩展名为*.iso的文件复制到远程images*目录中。

要递归复制一个目录,我们使用*-r*选项,如下所示:

scp -r images user@remote.com:~/remoteImages

上面的命令递归地复制了images目录及其子目录和文件到远程系统。

我们还可以从远程系统复制一个文件到我们的本地系统,如下所示:

scp user@remote.com:~/remoteImages/remoteImage.iso ~/images

上面的命令将远程文件remoteImage.iso复制到本地目录images

为了指定一个端口,假设远程系统上的ssh运行在一个不同的端口,我们写道:

scp -P 23 image.iso user@remote.com:~/remoteImages

我们用P选项将默认的ssh端口22改为23,这个端口在远程系统上正在运行。

我们还可以在远程系统之间复制文件,如下:

scp user@remote1.com:~/remote1Images/remote1Image.iso user2@remote2.com~:~/remote2Images

上面的命令从远程主机remote1.com复制remote1Image.iso到另一个远程主机remote2.comremote2Images目录。

-C选项被用来压缩被复制的文件,因此操作会更快:

scp -C user@remote.com:~/remoteImages/remoteImage.iso ~/images

为了保留文件属性,如修改和访问时间、权限等,我们使用*-p*选项,如下所示:

scp -p user@remote.com:~/remoteImages/remoteImage.iso ~/images

SCP使用AES-128密码进行加密,我们可以使用-c选项来改变,如下所示:

scp -c 3des user@remote.com:~/remoteImages/remoteImage.iso ~/images

从上面的命令中,我们已经切换到了3des加密。

我们还可以用-l选项来限制带宽,如下所示:

scp -l 800 user@remote.com:~/remoteImages/remoteImage.iso ~/images

上面的命令将带宽限制为100kbs。

总结

cp命令不同,scp在计算机网络上进行复制,
它使用SSH对数据进行加密,并在两个系统之间提供一个安全的隧道,因此文件不能被嗅到。

虽然可以设置RSA认证,但需要密码认证,这将绕过密码提示,同时提高安全性。
当文件被复制并且它们在目标系统上已经存在时,原始文件被替换。

为了能够复制文件,必须有适当的权限。
在windows系统中, WinSCP被用来完成这个任务。 SCP是FTP的一个替代品,而FTP 是不安全的。

参考资料

  1. 执行命令man scp查看其手册页面或scp-help