主机之间建立ssh互信

不管是oracle rac集群还是hadoop集群上,经常会遇到主机之间建立ssh互信的问题,oracle 11g及以后都可以用图形界面进行建立互信,但是在haoop集群搭建的过程中还是需要自己手动创建的。
1、互信原理
不建立互信的话为了安全是不能直接ssh登陆的,需要输入密码;建立互信之后主机之间就可以互相无密码ssh访问,就要先生成自己的公钥和私钥,然后将自己的公钥发给其他机器,并写入认证文件,那样可以就可以无密码登陆到其他机器上。
2、互信配置
1、在两台机器上生成认证文件,就是ssh互信的认证文件,需要放在用户的home目录中,所以我们需要先创建这个目录,且保证这个目录的全县时755
[root@web-1 ~]# mkdir ~/.ssh
[root@web-1 ~]# chmod 755 ~/.ssh
[root@web-1 ~]# /usr/bin/ssh-keygen -t rsa -P ” #下面默认回车就行
[root@web-2 ~]# mkdir ~/.ssh
[root@web-2 ~]# chmod 755 ~/.ssh
[root@web-2 ~]# /usr/bin/ssh-keygen -t rsa -P ”
2、必须将每个主机上的公共密钥文件id_rsa.pub的内容复制到其他每一个主机的~/.ssh/authorized_keys文件中。注意,当您第一次使用ssh访问远程主机时,其RSA密钥是未知的,所以提示确认一下,确认完毕后SSH将纪录远程主机的RSA密钥,以后连接该主机将不再做出相应的提示。
[root@web-1 ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[root@web-1 ~]# ssh root@web-2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3、经过上述两步,在web-1上存了一份完整的key认证文件,我们只需要把这个目录拷贝到web-2这台机器的对应目录里去就可以了,别忘了把authorized_keys 的权限设置
成600
[root@web-1 ~]#scp ~/.ssh/authorized_keys web-2:~/.ssh/authorized_keys
[root@web-1 ~]# chmod 600 ~/.ssh/authorized_keys

4、到此为止,互信配置完毕,检测一下是否成功。
关于ssh秘钥问题,如果之前有人了解过的其实有rsa和dsa两种,后续会继续补充。如果有其他通用问题可以参考如下:
http://www.unixresources.net/bsd/freebsd/fbc/27/archive/00/00/03/44/34411.html

未完待续,假如要建立一个一百台的hadoop集群,建立互信将会是一个非常繁重的任务,抽时间会再写一个批量建立互信的脚本。敬请关注。

你可能感兴趣的:(ssh互信)