Linux中scp命令详解

scp(Secure Copy Protocol)是一个用于在本地主机和远程主机之间安全地复制文件或目录的命令。它使用 SSH(Secure Shell)协议来进行安全的文件传输。以下是 scp 命令的基本用法和详解:

1. 基本用法

scp [选项] [源文件或目录] [目标主机:目标路径]
  • [选项] scp 支持多种选项,用于设置不同的参数,例如 -r 用于递归复制目录,-p 用于保留文件的权限等。

  • [源文件或目录] 要复制的本地文件或目录路径。

  • [目标主机:目标路径] 目标主机和目标路径。如果省略了目标主机,则默认为本地主机。目标路径可以是相对路径或绝对路径。

2. 选项

  • -r 递归地复制整个目录。

  • -P 指定非标准 SSH 端口。

  • -p 保留文件的修改时间、访问时间和权限。

  • -i 指定用于身份验证的密钥文件。

3. 示例

从本地复制到远程主机

scp localfile username@remote:/path/to/destination

从远程主机复制到本地

scp username@remote:/path/to/file /local/path

递归复制整个目录

scp -r localdir username@remote:/path/to/destination

指定非标准 SSH 端口

scp -P 2222 localfile username@remote:/path/to/destination

保留文件权限和时间

scp -p localfile username@remote:/path/to/destination

使用特定密钥文件

scp -i keyfile.pem localfile username@remote:/path/to/destination

4. 使用 SSH 密钥对身份验证

scp 使用 SSH 协议进行安全传输,因此可以通过 SSH 密钥对来进行身份验证,而不必输入密码。确保公钥已经被添加到目标主机的 ~/.ssh/authorized_keys 文件中。

5. 注意事项

  • 文件权限: 在目标主机上,scp 将尊重目标文件的权限设置。确保目标路径具有适当的写入权限。

  • 目录递归: 使用 -r 选项进行递归复制目录时,确保目标路径存在。

  • SSH 端口: 如果目标主机使用非标准 SSH 端口,可以使用 -P 选项指定端口号。

  • SSH 密钥: 使用 -i 选项指定用于身份验证的密钥文件。

6. 高级用法和示例

通过跳板主机(Jump Host)进行传输

有时候,需要通过一个跳板主机来连接目标主机。可以通过 -J 选项指定跳板主机:

scp -J jumpuser@jumphost:jumpfile user@remote:/path/to/destination

限制带宽

可以使用 -l 选项限制传输的带宽,例如限制为 100kbps:

scp -l 100 localfile username@remote:/path/to/destination

使用不同的 SSH 配置文件

如果有多个 SSH 配置文件,可以使用 -F 选项指定配置文件路径:

scp -F /path/to/ssh/config localfile username@remote:/path/to/destination

传输时显示进度

使用 -v 选项显示详细信息,而 -q 选项则关闭输出。可以通过 --progress 选项显示传输进度:

scp --progress localfile username@remote:/path/to/destination

7. 使用通配符

scp 支持通配符,可以使用通配符来传输多个文件:

scp localdir/*.txt username@remote:/path/to/destination

8. 使用压缩

通过 -C 选项使用压缩传输,可以减少网络传输时间:

scp -C localfile username@remote:/path/to/destination

9. 使用代理跳板主机

如果通过 SOCKS 代理跳板主机,可以使用 -o 选项指定 ProxyJump 选项:

scp -o ProxyJump=proxyuser@proxyhost:proxyport localfile username@remote:/path/to/destination

总结

scp 提供了许多选项和功能,可以根据实际需求进行灵活配置。无论是简单的文件传输还是复杂的跳板主机、限制带宽、显示进度等高级用法,scp 都是一个强大而实用的工具。详细的选项和用法可以查阅 scp 的 man 手册(man scp)。

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 2
收藏 2
关注 25
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧