目录
- 01 简介
- 02 操作
- 2.1 本地发送到远程
- 2.2 从远程下载
- 2.3 主机之间复制
- 03 其他参数
- 3.1 递归下载目录
- 3.2 指定下载端口
- 3.3 指定密钥
- 3.4 保留文件属性
- 3.5 启用压缩传输
- 3.6 限制最大带宽
- 04 注意事项
01 简介
scp(Secure Copy)是基于 SSH 协议的命令行工具,用于在本地与远程主机之间,或两台远程主机之间进行安全的文件传输。它利用 SSH 通道进行加密,只要具备 SSH 访问权限即可使用。
02 操作
2.1 本地发送到远程
# 语法:scp [本地文件路径] [用户名]@[目标IP]:[远程目标路径]
# /path/to/local/file - 本地源文件的绝对路径或相对路径
# user - 在远程主机上拥有权限的用户名
# 192.100.100.100 - 远程主机的IP地址或域名
# : - 分隔符,区分本地和远程路径
# /home/user/documents/ - 文件在远程主机上的目标路径
scp /path/to/local/file user@192.100.100.100:/home/user/documents/
2.2 从远程下载
# 语法:scp [用户名]@[源IP]:[远程文件路径] [本地目标路径]
# user - 在远程主机上拥有权限的用户名
# 192.100.100.100 - 远程主机的IP地址或域名
# : - 分隔符,区分远程和本地路径
# /home/user/documents/file - 远程主机上的源文件路径
# /path/to/local/destination/ - 本地目标目录路径
scp user@192.100.100.100:/home/user/documents/file /path/to/local/destination/
2.3 主机之间复制
scp在主机之间传递,实际上是通过本地中转传输的,并不是主机之间直接发送
# 语法:scp [用户名1]@[主机1]:[源文件路径] [用户名2]@[主机2]:[目标路径]# 将文件从主机A复制到主机B
scp userA@192.100.100.101:/data/reports/report.pdf userB@192.100.100.102:/backup/reports/
03 其他参数
3.1 递归下载目录
# 递归下载远程整个目录到本地
scp -r user@192.100.100.100:/home/user/documents/ /path/to/local/folder/
3.2 指定下载端口
如果对方的ssh端口不是22,需要指定下载端口
# 递归下载远程整个目录到本地
scp -r user@192.100.100.100:/home/user/documents/ /path/to/local/folder/
3.3 指定密钥
# 使用特定SSH密钥文件进行认证下载
scp -i ~/.ssh/my_private_key user@192.100.100.100:/home/user/documents/file ./
3.4 保留文件属性
# 保留文件原属性(时间戳、权限等)
scp -p user@192.100.100.100:/important/config.conf ./
3.5 启用压缩传输
# 启用压缩传输(适合大文件或慢速网络)
scp -C user@192.100.100.100:/large/database_backup.sql ./
3.6 限制最大带宽
# 限制带宽使用(单位:Kbit/s)
scp -l 512 user@192.100.100.100:/backup/large_file.tar.gz ./
04 注意事项
-
确保对远程文件有读取权限
-
确保对本地目标路径有写入权限
-
首次连接时需要确认主机指纹
-
路径包含空格时要用引号括起来