使用SCP命令转移Linux文件

前言

出于更换 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 端口的不同,拷贝命令分为以下两种:

  1. 远端 B 为密码登录, SSH 为默认端口 22 A:/abc/ >>>上传>>> B:/root

    scp -r /abc [email protected]:/root
    

    A:/root <<<下载<<< B:/abc/

    scp -r [email protected]:/abc /root
    
  2. 远端 B 为密钥(密钥文件为 .ssh/id_rsa)登录, SSH 端口为 2222 A:/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 跨机远程拷贝

updatedupdated2023-09-272023-09-27