5. SSH SCP 应用

5.1. CP 命令

在说明 scp 命令前,我们先看看 cp 命令,它可以复制文件与目录,使用方式如下。

cp [OPTION] SOURCE DEST

在修改配置前,我们通常会复制对应的文件作为备份,比如备份先前的 sshd 配置文件。

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

5.2. SCP 命令

scpcp 类似,可以通过 SSH 协议操作远程主机的文件,相当于将底层文件系统进行了扩展。

scp [OPTION] SOURCE DEST

在操作远程文件时, SOURCE 和 DEST 需要添加用户名和主机,如 dummy@10.0.0.1:/home/dummy

复制文件至远端

scp testfile dummy@10.0.0.1:/home/dummy

复制文件至本地

scp dummy@10.0.0.1:/home/dummy/testfile ./

复制目录至远端

scp testdir dummy@10.0.0.1:/home/dummy

复制目录至本地

scp dummy@10.0.0.1:/home/dummy/testdir ./

双远程复制(新增特性,不一定有效)

scp dummy@10.0.0.1:/home/dummy/testfile dummy1@10.0.0.2:/home/dummy1/

其余操作可以递推,略。

5.3. SCP 选项

  • -l 限制速度

  • -P 指定端口

  • -i 指定密钥

  • -v 调试模式

  • -q 静默模式

  • -F 指定配置文件

上述选项很少使用,毕竟配置文件同样适用 scp 命令。

Host dummy
    HostName 10.0.0.1
    User dummy
    Port 3333
    IdentityFile ~/.ssh/dummy

Host dummy1
    HostName 10.0.0.2
    User dummy1
    Port 2222
    IdentityFile ~/.ssh/dummy1

在配置完成后,命令可以大幅简化:

scp -P 3333 -i ~/.ssh/dummy testfile dummy@10.0.0.1:/home/dummy
scp testfile dummy:/home/dummy

-F 可以指定配置文件,临时环境很有用。

双远程复制是新增特性,如配置文件所示,当主机端口和认证密钥不一致时,应当如何指定?

建议登陆一台远程主机,然后执行 scp 命令。