已经做的工作(a)(b)(c)
(a)
机器三台的hostname是:master116、master117、master118
(b)
先设置hosts,把对应的IP和hostname加进去:
192.168.0.116 master116
192.168.0.117 slave117
192.168.0.118 slave118
(c)
关闭防火墙
#chkconfig iptables off
#service iptables stop 或 #setenforce 0
PS:
使用#ssh-keygen -t rsa生成密钥
-t表示密钥(type自)类型,其它参数如:-P '' 就表示空密码,也可以不用-P参数,这样就要三个回车;-p 22表示端口22
现在情况:
按照一般ssh无密码登陆的配置方法,authorized_keys文件已经将三台机器的公钥都加进去了,如下:
但问题是:
master116访问slave117和slave118还是需要密码!!!而slave117和slave118访问master116则不用密码!!!(另外,slave117访问slave118需要密码,反过来也是)。
好吧,以前从来没有遇见过这个问题,估计和重新刷掉的机器的ip配置之类的有关,anyway,开始解决:
在master116使用#ssh -v slave117调试,没有发现什么异样...下面一句
debug1: Unspecified GSS failure. Minor code may provide more information
有怀疑,但是查了一下,好像只是为了解决ssh登陆慢的问题。
再来个(1)、(2)、(3)进行解决:
(1)
master116的.ssh权限是:
drwx------. 2 root root 4096 Feb 8 05:55 .ssh
drwxr-xr-x. 2 root root 4096 Feb 8 05:56 .ssh
在此情况下,slave117和slave118都是可以无密码登陆到master116的,反过来则需要密码。
难道被访问主机的权限必须是700?
于是将slave117和slave118的.ssh权限改为700
#chmod 700 .ssh
重启机器,还是不行!!!!!
(2)
再使用查看配置:
#cat /etc/ssh/sshd_config | more
不同的地方是,master116的配置把
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
三行的注释是去掉的,现在,把slave117和slave118的sshd_config(not ssh_config)中的注释也去掉...
还是不行!!!
(3)
借鉴链接:http://lszb811.com/2014/12/30/SSH-%E5%8E%9F%E7%90%86%E4%B8%8E%E8%BF%90%E7%94%A8/
使用
$ ssh-copy-id root@slave117
解决问题,从此从master116再登录到slave117,再也不需要输入密码了。
问题又来了
为什么将公钥写入authorized_keys,复制到其它机器进行无密码登陆不行呢?(以前是可以的,这种情况还是第一次遇见)