前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >什么!你还不会Linux的scp命令?

什么!你还不会Linux的scp命令?

作者头像
Linux兵工厂
发布2024-02-27 17:23:39
2870
发布2024-02-27 17:23:39
举报
文章被收录于专栏:Linux兵工厂Linux兵工厂

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

1. 基本用法

代码语言:javascript
复制
scp [选项] [源文件或目录] [目标主机:目标路径]
  • [选项] scp 支持多种选项,用于设置不同的参数,例如 -r 用于递归复制目录,-p 用于保留文件的权限等。
  • [源文件或目录] 要复制的本地文件或目录路径。
  • [目标主机:目标路径] 目标主机和目标路径。如果省略了目标主机,则默认为本地主机。目标路径可以是相对路径或绝对路径。

2. 选项

  • -r 递归地复制整个目录。
  • -P 指定非标准 SSH 端口。
  • -p 保留文件的修改时间、访问时间和权限。
  • -i 指定用于身份验证的密钥文件。

3. 示例

从本地复制到远程主机
代码语言:javascript
复制
scp localfile username@remote:/path/to/destination
从远程主机复制到本地
代码语言:javascript
复制
scp username@remote:/path/to/file /local/path
递归复制整个目录
代码语言:javascript
复制
scp -r localdir username@remote:/path/to/destination
指定非标准 SSH 端口
代码语言:javascript
复制
scp -P 2222 localfile username@remote:/path/to/destination
保留文件权限和时间
代码语言:javascript
复制
scp -p localfile username@remote:/path/to/destination
使用特定密钥文件
代码语言:javascript
复制
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 选项指定跳板主机:

代码语言:javascript
复制
scp -J jumpuser@jumphost:jumpfile user@remote:/path/to/destination
限制带宽

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

代码语言:javascript
复制
scp -l 100 localfile username@remote:/path/to/destination
使用不同的 SSH 配置文件

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

代码语言:javascript
复制
scp -F /path/to/ssh/config localfile username@remote:/path/to/destination
传输时显示进度

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

代码语言:javascript
复制
scp --progress localfile username@remote:/path/to/destination

7. 使用通配符

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

代码语言:javascript
复制
scp localdir/*.txt username@remote:/path/to/destination

8. 使用压缩

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

代码语言:javascript
复制
scp -C localfile username@remote:/path/to/destination

9. 使用代理跳板主机

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

代码语言:javascript
复制
scp -o ProxyJump=proxyuser@proxyhost:proxyport localfile username@remote:/path/to/destination

总结

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-02-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linux兵工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 基本用法
  • 2. 选项
  • 3. 示例
    • 从本地复制到远程主机
      • 从远程主机复制到本地
        • 递归复制整个目录
          • 指定非标准 SSH 端口
            • 保留文件权限和时间
              • 使用特定密钥文件
              • 4. 使用 SSH 密钥对身份验证
              • 5. 注意事项
              • 6. 高级用法和示例
                • 通过跳板主机(Jump Host)进行传输
                  • 限制带宽
                    • 使用不同的 SSH 配置文件
                      • 传输时显示进度
                      • 7. 使用通配符
                      • 8. 使用压缩
                      • 9. 使用代理跳板主机
                      • 总结
                      相关产品与服务
                      多因子身份认证
                      多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档