我因为要自己搭个测试集群选用了三台主机,免密互通的时候一直是有一台连不上,遇到这种问题的解决方案。网上也讲了很多但是我也是花费了大半天没有解决这个小问题,那么为了能帮助到大家,那么我来详细讲讲百分百解决问题。
注意:你可能已经很疲惫了,毕竟解决问题头疼,那么请你一定要按照本文一步步来,因为生成秘钥的命令不一样生成文件名字和文件都不一样。(花了我大半天就是解决这点破事,如果熟悉的话几分钟就能够搞定了)它将彻底解决你的实际问题。也不枉我花这一小时做这博文。
我先嘚瑟一下,先删除免密互通。
先讲删除,是因为出错是很烦的,最粗暴的方法就是先把之前的全删干净 ,然后再按接下来的步骤一步步的做。
1.删除各节点的~/.ssh文件夹;
rm -rf ~/.ssh/
2.创建这个文件夹
mkdir ~/.ssh
3.确认创建文件夹成功
cd ~/.ssh
4.查看文件夹(确认文件夹里面没有别的文件)
ls
一切干净了以后,我就得讲下环境配置
5.然后再在通过root权限修改hosts文件,配置主机别名与IP地址的映射关系
主机:
192.168.220.135 hadoop01
192.168.220.180 hadoop02
192.168.220.181 hadoop03
三台主机改配置文件:
6.
vi /etc/ssh/sshd_config
将下面内容写入配置文件
PermitRootLogin yes
StrictModes no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
彻底关闭防火墙
7.永久有效
开启: chkconfig iptables on
关闭: chkconfig iptables off
8.然后到.ssh文件夹下
cd ~/.ssh
在~/.ssh文件夹下执行
ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa(id_rsa,id_rsa.pub两个文件).
最后我上结果图
默认在 ~/.ssh目录生成两个文件:
id_dsa :私钥
id_dsa.pub :公钥
9.导入公钥到认证文件
cd ~/.ssh
再执行
cat id_dsa.pub >> authorized_keys
10.修改文件权限
.ssh/ 文件夹权限改为700,authorized_keys文件权限改为600
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
11.将authorized_keys 文件传给其他主机,其本质就是将id_dsa.pub(公钥)传给其他主机
[root@hadoop01 .ssh]# scp ~/.ssh/authorized_keys root@hadoop03:~/.ssh/
注:如果传了以后还是连接需要密码,最有可能就是
cat id_dsa.pub >> authorized_keys命令没有执行成功,
执行一下两步再执行11步的操作必定能能够解决
cd ~/.ssh
cat id_dsa.pub >> authorized_keys
上最后嘚瑟的结果图。