在Ubuntu系统中,scp
(secure copy)命令用于在本地主机和远程主机之间安全地传输文件。以下是使用scp
命令的基本语法和一些常见用法:
基本语法
scp [选项] [源路径] [目标路径]
常见选项
-r
:递归复制整个目录。-P
:指定远程主机的端口号(默认是22)。-v
:显示详细的调试信息。-i
:指定私钥文件(用于SSH密钥认证)。
示例用法
1. 从本地复制文件到远程主机
scp /path/to/local/file username@remote_host:/path/to/remote/directory
例如:
scp /home/user/documents/report.txt user@192.168.1.100:/home/user/documents/
2. 从远程主机复制文件到本地
scp username@remote_host:/path/to/remote/file /path/to/local/directory
例如:
scp user@192.168.1.100:/home/user/documents/report.txt /home/user/documents/
3. 复制整个目录
scp -r /path/to/local/directory username@remote_host:/path/to/remote/directory
例如:
scp -r /home/user/documents user@192.168.1.100:/home/user/
4. 使用指定端口
scp -P port /path/to/local/file username@remote_host:/path/to/remote/directory
例如:
scp -P 2222 /home/user/documents/report.txt user@192.168.1.100:/home/user/documents/
5. 使用SSH密钥认证
如果你已经设置了SSH密钥认证,可以省略密码输入:
scp -i /path/to/private_key /path/to/local/file username@remote_host:/path/to/remote/directory
例如:
scp -i ~/.ssh/id_rsa /home/user/documents/report.txt user@192.168.1.100:/home/user/documents/
注意事项
- 确保你有权限访问远程主机上的目标目录。
- 如果使用SSH密钥认证,确保私钥文件的权限设置正确(通常是
600
)。 - 如果目标目录不存在,
scp
会自动创建它。
通过这些基本用法,你应该能够在Ubuntu系统中使用scp
命令安全地传输文件。