需求
节点A要ssh免密码登录节点B。
1.产生密钥
节点A和B都要产生秘钥,并且要注意是否在root用户下,登录对象是用户,而不是机器,所以产生密钥前先从root或者其他用户切换到你说需要的用户。然后执行一下命令,然后三次无输入回车确认即可,最终会打印出一个密钥:
ssh-keygen -t rsa
结果如图:
2.节点A将产生的公钥追加到授权列表里
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
3.节点A公钥追加到节点B的授权列表里
打开id_rsa.pub,将完整的公钥追加粘贴到节点B的~/.ssh文件夹下的authorized_keys文件末尾,直接粘贴比较方便。还可以通过scp方式传递,具体可自行找一下方法。
4.节点A登录节点B
首次远程登录,需要输入yes,以后就可以免密码登录了。还有一个细节,如果两台机器的用户名相同,可以直接省略用户名,直接按照主机名或者ip名称登录即可。
ssh 用户名@主机名或者ip
成功后会显示welcome to ...
有些人提到要修改authrized_keys的权限,但我这里好像不修改也没问题,不知道是否遇到了特殊情形。
总结
使用ssh免密码登录,其实就是利用产生的公钥,将公钥作为授权对象,某个用户的授权列表里加入了别的用户的公钥,就可以让别的用户免密码登录这个用户了。