双向,顾名思义,双方互通,此处的意思是多台 linux 两两免密登录。双向比单向多了些操作,单向只需把某一个linux的公钥发送给其他linux即可,而双向要实现集群中的每一台机器都保存其他所有机器的公钥。
假设,你有两台机器,ip分别为A和B:
总共分为三步:
如下命令生成公钥,默认会在~/.ssh/下生成id_rsa和id_rsa.pub。先检查一下机器是否已有公钥,如果没有再执行:
ssh-keygen -t rsa
cd ~/.ssh
scp id_rsa.pub root@B:/root/.ssh/authorized_keys #此命令在A机器执行,目的将公钥发送至B机器
scp id_rsa.pub root@A:/root/.ssh/authorized_keys #此命令在B机器执行,目的将公钥发送至B机器
scp: 加密的方式在本地主机和远程主机之间复制文件
参数:
ssh B #在A机器上,看是否免密登陆B
ssh A #在A机器上,看是否免密登陆B
如果发现设置免密登陆,还需要输入密码,那么检查一下/root.ssh
authorized_keys目录和文件的权限。
chmod 600 authorized_keys
chmod 700 .ssh
如果authorized_keys文件、$HOME/.ssh目录 或 $HOME目录让本用户之外的用户有写权限,那么sshd都会拒绝使用 ~/.ssh/authorized_keys 文件中的key来进行认证的。