节点间无密码ssh访问,集群必备基础!

在搭建ceph集群的过程中,各节点间相互切换或者相互访问时,总是提示输入密码,特别是在使用脚本一键部署时,特别烦琐,这里提供一个各节点间无密码直接ssh的配置访问,非常好用,来回拷贝文件什么的,也不需要输入密码了。:smiley:
ps:这样配置了之后,可能会降低安全性,如果对安全性要求高的集群的话,还是手动一个个敲吧,自己做实验阶段强力推荐!

下面说说配置访问:
1. ssh服务的安装(各节点均安装) 打开终端,执行如下指令:
sudo apt-get install openssh-server

2、生成密钥(各节点相同操作)
执行如下指令:
ssh-keygen 遇到提示输入文件名或是密码的地方不用管,一路回车键即可。
完成之后,在/home/username(“username”是登录名)目录下会有生成 一个".ssh"目录,“ls .ssh”之后会发现里面有两个文件,一个是id_rsa,另一个是id_rsa.pub,前者是私钥,后者是公钥。

3、建立信任链接
在node1上执行ssh-copy-id指令:
ssh-copy-id root@10.0.0.2
输入一次密码,OK!
再次ssh root@10.0.0.2时应该就不需要输入密码了

依次ssh-copy-id到其它的节点上,完工!

说明:
1:ssh-keygen时,生成的密码是提供给当前用户的,比如,用户kylin登录时执行的,那么就是node1的kylin用户可无密码访问其它节点,而node1的root用不行的。
2: 在node1上运行ssh-copy-id后,完成的是node1无密码访问其它节点,其它节点无密码访问node1时,在其它节点上运行ssh-copy-id

没想到ssh的密钥用起来这么简单 学习了

嘿嘿,是的啊,就是这么简单,集群环境下用这个非常方便,不用来回输入密码了

服务器支持的话,客户端也可以这样设置的,我有ssh代理,有时候就可以执行这个命令,然后不用密码了,不过有的代理不能这样设置

客户端是一样的,都可以

看到这个,windows 使用putty也可以配置ssh无密码配置的

http://wiki.urchn.org/wiki/How_to_get_SparkleShare_working_on_Windows