共计 1413 个字符,预计需要花费 4 分钟才能阅读完成。
在 Linux 环境下,两台主机之间传输文件一般使用 scp 命令,通常用 scp 命令通过 ssh 获取对方 Linux 主机文件的时候都需要输入密码确认。
不过通过建立信任关系,可以实现不输入密码。
这里假设 A 的 IP:192.168.10.1
B 的 IP:192.168.10.2
需要从 A 免密码输入复制文件至 B。
1. 在主机 A 上执行如下命令来生成配对密钥:
ssh-keygen -t rsa
按照提示操作,注意,不要输入 passphrase。提示信息如下
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ff:8e:85:68:85:94:7c:2c:46:b1:e5:2d:41:5c:e8:9b root@localhost.domain
2. 将 .ssh 目录中的 id_rsa.pub 文件复制到 主机 B 的 ~/.ssh/ 目录中,并改名为 authorized_keys。
scp .ssh/id_rsa.pub 192.168.10.2:/root/.ssh/authorized_keys
以后从 A 主机 scp 到 B 主机就不需要密码了。
3. 使用此方法需要注意: 复制的两台计算机需要用相同的账户名 ,这里都是用的 root。为了安全起见,需要在两台机器中创建相同的账号,然后在 A 上用 su 命令切换至账号下,执行第 1 步,第二步中复制文件时可能.ssh 目录并不存在,需要手动创建。
在第 2 步中如果机器中已经存在 authorized_keys 文件,则需注意,这个文件可以包含多个 SSH 验证信息,这时可用 cat >> 命令将验证文件内容附加上去。
比如复制到 scp .ssh/id_rsa.pub 192.168.10.2:/root/.ssh/a.pub
然后执行 cat ~/.ssh/a.pub >> ~/.ssh/authorized_keys
Linux 之 cp/scp 命令+scp 命令详解 http://www.linuxidc.com/Linux/2014-09/107127.htm
CentOS 不能使用 scp 命令 解决方法 http://www.linuxidc.com/Linux/2014-09/106569.htm
两台 Linux 主机之间 scp 复制文件 http://www.linuxidc.com/Linux/2014-04/99979.htm
压榨 scp 传输速度 http://www.linuxidc.com/Linux/2014-01/95498.htm
加速 scp 传输速度 http://www.linuxidc.com/Linux/2014-01/95497.htm
shell 实现 scp 批量下发文件 http://www.linuxidc.com/Linux/2013-11/92783.htm
十个 SCP 传输命令例子 http://www.linuxidc.com/Linux/2014-12/110846.htm