使用 scp 从目标机器下载文件到本地机器的基本语法如下:
scp [选项] 用户名@目标机器IP:目标文件路径 本地保存路径
详细步骤和示例:
1. 基本下载命令
scp username@remote_host:/remote/path/to/file /local/path/to/save
username: 目标机器的用户名。remote_host: 目标机器的IP地址或域名。/remote/path/to/file: 目标机器上的文件绝对路径。/local/path/to/save: 本地保存文件的路径(可以是目录或指定文件名)。
2. 示例
- 从目标机器
192.168.1.100下载/home/user/data.txt到本地的当前目录:bashscp user@192.168.1.100:/home/user/data.txt .(.表示当前目录) - 下载文件并重命名为
local_data.txt:bashscp user@192.168.1.100:/home/user/data.txt ./local_data.txt - 下载整个目录(加
-r递归复制):bashscp -r user@192.168.1.100:/remote/path/to/folder /local/path
3. 常用选项
| 选项 | 作用 |
|---|---|
-P 端口号 | 指定SSH端口(默认22可省略) |
-r | 递归下载目录 |
-i 密钥文件 | 使用指定私钥认证(替代密码) |
-v | 显示详细传输过程(调试用) |
4. 指定非默认SSH端口
如果目标机器的SSH服务不在默认端口(如 2222):
scp -P 2222 user@remote_host:/path/to/file /local/path
5. 使用密钥认证(无密码)
scp -i ~/.ssh/id_rsa user@remote_host:/path/to/file /local/path
6. 注意事项
- 确保目标机器的SSH服务已启动。
- 本地路径需有写入权限。
- 首次连接时会提示确认目标机器指纹,输入
yes即可。
常见问题
- 权限被拒绝:检查目标文件是否可读,或使用
sudo(需配置免密sudo)。 - 连接超时:检查网络、防火墙是否放行SSH端口。
- 文件名含空格:用引号包裹路径(如
"/path/with spaces/file.txt")。
如果需要从本地上传文件到目标机器,命令格式类似,但顺序相反:
scp /local/file user@remote_host:/remote/path