scp命令远程复制的时候,每次执行都需要输入密码,如果是脚本自动备份或者复制文件的时候,这样肯定很不方便。这个时候,我们就要用到了ssh-keygen让他们建立信任关系,步骤如下

1. a机器ip为192.168.1.250,b机器ip为192.168.1.240;a机器想访问b机器scp远程复制时不输入密码。

2. 原理:在b机器上利用ssh-keygen生成密钥对,将私钥放在自己家目录的.ssh目录下,然后将密钥拷贝到a(也就是需要访问b机器而不需要密码的信任账号),并将密钥文件命名为authorized_keys即可

3. 步骤如下:
1)在b上,生成密钥对:
[root@test250 .ssh]# ssh-keygen -t rsa
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:
12:a1:ac:45:e6:b9:1e:7f:40:56:a9:dd:d9:ea:e1:2a root@test250
2)将公约复制到a机器上去:
[root@test250 .ssh]# scp id_rsa.pub root@192.168.1.240:/root/.ssh/authorized_keys
root@192.168.1.240's password:
id_rsa.pub                                                                      100%  394     0.4KB/s   00:00   
[root@test250 .ssh]# scp id_rsa.pub root@192.168.1.240:/root/.ssh/authorized_keys
id_rsa.pub                                                                      100%  394
此处因为还没有信任,所以需要输入用户名和密码,复制完之后,信任关系就已经建立。

若想让b也被a信任,重复以上步骤
若要获得更多ssh-keygen的帮助,直接man ssh-keygen即可。