新
| | |
scp
命令速查笔记
基本语法
scp [参数] [源路径] [目标路径]
常用操作示例
1. 上传本地文件到远程服务器
scp ./file.txt user@192.168.1.10:/home/user/
2. 从远程服务器下载文件到本地
scp user@192.168.1.10:/home/user/file.txt ./file.txt
3. 上传目录到远程服务器
scp -r ./mydir user@192.168.1.10:/home/user/
4. 从远程服务器下载目录到本地
scp -r user@192.168.1.10:/home/user/mydir ./mydir
5. 使用指定端口(如 2222)
scp -P 2222 ./file.txt user@192.168.1.10:/home/user/
6. 使用指定私钥文件
scp -i ~/.ssh/id_rsa ./file.txt user@192.168.1.10:/home/user/
常用参数说明
参数 | 说明 |
---|---|
-r | 递归复制整个目录 |
-P | 指定远程主机端口(注意是大写 P) |
-i | 指定 SSH 私钥文件 |
-C | 启用压缩,提高传输速度 |
-p | 保留文件的修改时间、权限等属性 |
-q | 静默模式,不输出进度信息 |
路径说明
类型 | 示例 |
---|---|
本地路径 | ./file.txt 或 /home/user/file.txt |
远程路径 | user@host:/path/to/file.txt |
常见错误排查
错误 | 可能原因 |
---|---|
Permission denied | SSH 密钥无效,或远程目录无写权限 |
No such file or directory | 源或目标路径写错 |
Connection refused | 目标端口不通或 SSH 服务未开启 |
Host key verification failed | 第一次连接远程主机,未接受主机指纹。可先用 ssh 登录一次 |
实用补充
拷贝文件到另一台远程服务器
scp user1@host1:/path/file.txt user2@host2:/path/
当前机器必须能访问 host1 和 host2
批量上传文件(脚本示例)
for f in *.log; do
scp "$f" user@host:/var/logs/
done
常用命令模板
scp ./local.txt user@host:/remote/path/
scp user@host:/remote/file.txt ./local/
scp -r ./dir user@host:/remote/
scp -i ~/.ssh/key.pem -P 2222 ./file user@host:/dest/