当前位置:首页>Linux>Linux命令每日一清单003:scp--安全复制命令速查表

Linux命令每日一清单003:scp--安全复制命令速查表

  • 2026-09-02 20:13:15
Linux命令每日一清单003:scp--安全复制命令速查表

scp(Secure Copy)是基于SSH协议的安全文件传输命令,它在网络中的不同主机之间加密传输文件或目录。作为Linux/Unix系统中常用的远程文件传输工具,scp继承了SSH的安全特性,所有数据在传输过程中都经过加密,有效防止了中间人攻击和信息窃听。

与传统的FTP相比,scp无需额外配置FTP服务端,只要目标主机开启SSH服务即可使用。它语法简洁、功能强大,特别适合系统管理员进行远程备份、文件分发、应用部署等场景。虽然近年来rsync在增量传输方面更受青睐,但scp凭借其简单直接的特性,仍然是日常工作中不可或缺的命令行工具。

1. 基本语法

命令说明
scp 源路径 目标路径
scp命令通用语法
scp file.txt user@host:/path/
复制本地文件到远程
scp user@host:/path/file.txt .
复制远程文件到当前目录
scp user@host:/path/file.txt /local/path/
复制远程文件到指定本地目录

2. 上传文件

命令说明
scp file.txt user@host:/tmp/
上传单个文件
scp file1 file2 user@host:/tmp/
上传多个文件
scp *.log user@host:/var/log/archive/
上传匹配的文件
scp -p file.txt user@host:/tmp/
上传并保留修改时间和权限

3. 下载文件

命令说明
scp user@host:/tmp/file.txt .
下载到当前目录
scp user@host:/tmp/file.txt ~/Downloads/
下载到指定目录
scp user@host:'/var/log/*.log' .
下载远程通配符文件(需引号)
scp user@host:/tmp/file.txt ./new-name.txt
下载并重命名

4. 复制目录

命令说明
scp -r dir/ user@host:/tmp/
递归上传目录
scp -r user@host:/var/www/ ./backup/
递归下载目录
scp -r dir1 dir2 user@host:/tmp/
上传多个目录
scp -rp project/ user@host:/srv/
递归复制并保留属性

5. 端口、密钥和身份验证

命令说明
scp -P 2222 file.txt user@host:/tmp/
使用自定义SSH端口
scp -i ~/.ssh/id_ed25519 file.txt user@host:/tmp/
使用指定私钥
scp -o IdentityFile=~/.ssh/id_ed25519 file.txt user@host:/tmp/
通过-o选项指定密钥
scp -o StrictHostKeyChecking=yes file.txt user@host:/tmp/
强制主机密钥验证

6. 性能和可靠性

命令说明
scp -C large-file.iso user@host:/tmp/
启用压缩传输
scp -l 8000 file.txt user@host:/tmp/
限制带宽(单位:Kbit/s)
scp -v file.txt user@host:/tmp/
详细输出(调试用)
scp -q file.txt user@host:/tmp/
安静模式
scp -o ConnectTimeout=10 file.txt user@host:/tmp/
设置连接超时时间

7. 远程到远程复制

命令说明
scp user1@host1:/path/file user2@host2:/path/
在两个远程主机间复制
scp -3 user1@host1:/path/file user2@host2:/path/
通过本地中转传输
scp -P 2222 user1@host1:/path/file user2@host2:/path/
使用自定义端口(适用于两端)

8. 常用组合

命令说明
scp -r ./site user@host:/var/www/
部署静态网站文件
scp -i ~/.ssh/id_ed25519 -P 2222 backup.sql user@host:/tmp/
使用密钥和自定义端口上传
scp user@host:/etc/nginx/nginx.conf ./
拉取配置文件进行审查
scp -rp ./configs user@host:/etc/myapp/
复制配置并保留元数据

9. 故障排查指南

问题解决方法
Permission denied
确认用户对目标路径有写权限
Host key verification failedssh-keygen -R hostname
 移除旧密钥后重试
自定义端口连接拒绝
使用 scp -P 端口(大写P)指定端口
传输卡住或超时scp -o ConnectTimeout=10 -o ServerAliveInterval=15 file user@host:/path/
"Not a regular file"错误
传输目录需加 -r 参数
OpenSSH 9.0+协议错误scp -O file user@host:/path/
 使用传统SCP协议
调试连接问题scp -v file user@host:/path/
 查看详细SSH输出

温馨提示: scp命令虽然简单易用,但在传输大量小文件或需要增量备份的场景下,建议考虑使用rsync命令,它支持断点续传和增量同步,效率更高。此外,使用密钥认证可以避免每次输入密码,提高自动化脚本的可靠性。

本文PDF格式下载:

  关注公众号(haopython),请回复: LLT003

最新文章

随机文章