前言
出于更换 VPS 的目的,不得不对文件进行转移。最原始的办法可能是从 A
服务器拷贝一份到本机
,然后再重新上传到 B
服务器。这样做既繁琐又费时。不如使用 Linux 的 scp
命令进行快速转移来的方便。
简介
scp
(secure copy),可以用于在 Linux 下进行远程文件拷贝。类似于 cp
命令,scp
是应用于多设备间的传输拷贝,而前者是 Linux 本地命令。另外,scp
为 SSH 加密传输,安全性有保障——也因此,连接的端口为远端服务器的 SSH 服务端口(SSH 一般默认端口为 22)。
命令格式
scp -参数 [[user@]host1:]file1 ... [[user@]host2:]file2
常用命令参数
参数 | 含义 |
---|---|
-P | SSH 端口,缺省值为 22 |
-i | SSH 密钥登录,后面一个参数为私钥地址 |
-l | 带宽限制,单位 Kbps |
-r | 递归复制整个目录 |
-C | 允许压缩 |
常用命令
以下命令假设已登录本地机器为 A
(IP: 192.168.1.1),远端机器为 B
(IP: 192.168.2.1)
根据 SSH 登录方式和 SSH 端口的不同,拷贝命令分为以下两种:
-
远端
B
为密码登录, SSH 为默认端口 22A:/abc/
>>>上传>>>B:/root
:scp -r /abc [email protected]:/root
A:/root
<<<下载<<<B:/abc/
:scp -r [email protected]:/abc /root
-
远端
B
为密钥(密钥文件为.ssh/id_rsa
)登录, SSH 端口为 2222A:/abc/
>>>上传>>>B:/root
:scp -P 2222 -i .ssh/id_rsa -r /abc [email protected]:/root
A:/root
<<<下载<<<B:/abc/
:scp -P 2222 -i .ssh/id_rsa -r [email protected]:/abc /root
p.s. 使用密钥进行
scp
时,需保证密钥文件.ssh/id_rsa
对应的公钥.ssh/id_rsa.pub
内容已经写入到B
的/root/.sshauthorized_keys
文件中,否则无法正常使用密钥登录。具体原因与 SSH 密钥登录一致。
参考链接: scp 跨机远程拷贝