第一步、首先在要互相建立 ssh 互信的所有主机中当前用户下(互信是针对用户和 ip)执行如下命令
1、配置 hosts
2、生产密钥对
echo "ssh 互信配置开始"
ssh 互信配置开始
mkdir -p ~/.ssh
chmod 700 ~/.ssh
cd ~/.ssh
.ssh ssh-keygen -t rsa
.ssh ls -lt
总用量 16
-rw------- 1 ppzlinux ppzlinux 1675 2 月 17 21:56 id_rsa
-rw-r--r-- 1 ppzlinux ppzlinux 394 2 月 17 21:56 id_rsa.pub
-rw-r--r-- 1 ppzlinux ppzlinux 1 2 月 16 15:22 known_hosts
-rw------- 1 ppzlinux ppzlinux 789 2 月 16 14:48 authorized_keys
第二部、把所有主机的当前用户下的公钥文件 id_rsa.pub 里面的内容都复制到 authorized_keys,然后把这个文件复制到所有主机的~/.ssh 目录即可。
1、做所有主机执行如下
Cat /home/ppzlinux/.ssh/id_rsa.pub /home/ppzlinux/.ssh/authorized_keys
2、把上述每台主机执行如下
cp /home/ppzlinux/.ssh/authorized_keys /home/ppzlinux/.ssh/authorized_keys 主机名
3、如下
cat authorized_keys 主机名 1 authorized_keys 主机名 2 authorized_keys 主机名 3>authorized_keys
4、
把 3 步的 authorized_keys 文件覆盖到每台主机的/home/ppzlinux/.ssh/authorized_keys
5、每台主机上执行
chmod 600 ~/.ssh/authorized_keys
第三步、测试
1、在每台主机做 ssh 访问(包括本机自己),比如 pdsh 批量复制文件部署时,很多时候本机也要部署,因此自己也要对自己做互信才行。
ssh 远程 ip 或远程主机名(一定要先做 hosts 配置),第一此要输 yes/no,退出(exit),第二次如果能直接登陆,说明互信配置成功
2、如果第二次还要提示 yes/no,说明没配置成功
3、没互信成功情况下的问题检查,上述步骤没有缺少的前提下,检查每台机器的 authorized_keys 内容是否一样,可以比较 md5 值是否一样,
还有 known_hosts 文件之前是否已经存在,这个文件记录每次访问其他主机的信息,如果发现不一样会报错会互信成功,解决办法是清空
4、完毕。
问题:
如果主机的 ip 改过之后,要记得:mv /home/ppzlinux/.ssh/known_hosts /home/ppzlinux/.ssh/known_hosts.bak
然后重新用 ssh 登陆一次即可无密码登陆了。
总结:对方有你的公钥你就可以无密码访问它,即把 id_rsa.pub 里的内容加入对方的 authorized_keys 文件里。
注意:
$ vi /etc/ssh/sshd_config
找到以下内容,并去掉注释符”#“
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
service sshd restart
scp ~/.ssh/id_rsa.pub root@192.168.179.133:/root/.ssh/id_rsa.pub_ubuntu
然后
[root@ppzCentos6 .ssh]# cat id_rsa.pub>authorized_keys
[root@ppzCentos6 .ssh]# cat id_rsa.pub_ubuntu>>authorized_keys
直接复制粘贴有时不行哦,最好使用如下方式:
ssh-copy-id root@192.168.179.129
即把当前所在机器的当前用户的公钥复制追加到远程主机指定用户的 authorized_keys 的末尾。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于