在Linux中如何使用scp命令上传文件
scp(Secure Copy)是用于在两台机器之间进行安全复制文件或目录的命令,通过 SSH 来加密传输数据。它可以传输本地文件到远程服务器,或者从远程服务器下载文件到本地,还支持两台远程服务器之间传输。
scp命令基本语法:
scp [选项] [源路径] [目标路径]
常用选项:
-r:递归复制,支持复制整个目录。-P <port>:指定远程服务器的 SSH 端口(默认是 22)。-C:压缩传输数据。-v:显示详细的调试信息。-i <identity_file>:指定 SSH 使用的私钥文件。
用法示例:
1. 从本地复制文件到远程服务器:
scp local_file user@remote_host:/path/to/destination
local_file:本地文件路径。user:登录远程服务器的用户名。remote_host:远程服务器的地址(可以是 IP 或域名)。/path/to/destination:远程服务器上的目标路径。
2. 从远程服务器下载文件到本地:
scp user@remote_host:/path/to/remote_file /path/to/local_destination
/path/to/remote_file:远程服务器的文件路径。/path/to/local_destination:本地存放文件的路径。
3. 复制整个目录(递归):
从本地到远程服务器:
scp -r local_directory user@remote_host:/path/to/destination
从远程服务器到本地:
scp -r user@remote_host:/path/to/remote_directory /path/to/local_destination
4. 通过指定端口号传输文件:
scp -P 2222 local_file user@remote_host:/path/to/destination
这里用 -P 2222 指代 SSH 端口为 2222 (注意是大写的 P,而不是小写)。
5. 使用私钥登录并传输文件:
scp -i /path/to/private_key.pem local_file user@remote_host:/path/to/destination
这里的/path/to/private_key.pem 是 SSH 的私钥文件。
6. 从一台远程服务器直接复制到另一台远程服务器:
scp user1@remote_host1:/path/to/file user2@remote_host2:/path/to/destination
这会绕过本地计算机,直接从 remote_host1 把文件发送到 remote_host2。
实际场景中的常用示例:
a. 上传文件到远程服务器(默认端口 22):
scp file.txt root@192.168.1.100:/home/root/
b. 从远程服务器获取文件(指定端口):
scp -P 2222 root@192.168.1.100:/home/root/file.txt /home/user/
c. 上传目录文件:
scp -r /home/user/myproject root@192.168.1.100:/var/www/
d. 下载远程目录文件:
scp -r root@192.168.1.100:/var/www/ /home/user/myproject_copy/
如果你在使用 scp 时需要高效传输大量文件,可以考虑使用带压缩的选项:
scp -C local_file user@remote_host:/path/to/destination

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接
本文链接:http://choupangxia.com/2025/12/08/linux-scp-upload-file/