假设有机器A(192.168.100.0)和机器B(192.168.100.1)。若期望在A机器上免密登陆到B机器,则需要A机器有公钥和 私钥 ,B机器上有A机器的公钥。
以Ubuntu为例,操作步骤如下:
1)在A机器上生成公钥/私钥对
根据提示,回车即可,提示输入密码时回车即表示空密码。在用户根目录下生成.ssh文件夹,里面包括id_rsa(私钥)和id_rsa.pub(公钥)。
2)将A机器的id_rsa.pub复制到B机器下
A:~$ scp .ssh/id_rsa.pub B@192.168.100.1:~/
这一步还需要输入B机器的密码。
3)在B机器上将A机器的id_rsa.pub添加到B机器的.ssh/authorized_keys,并将authorized_keys的权限改成600
B:~$ cat id_rsa.pub >> .ssh/authorized_keys
B:~$ chmod 600 .ssh/authorized_keys
现在A机器可免密登陆到B机器上了。
若A机器提示“Agent admitted failure to sign using the key.”,则需要将私钥id_rsa添加到ssh-agent的高速缓存中。
A:~$ ssh-add .ssh/id_rsa