step1. 在deployNode上生成密钥
我当前用户是ceph,在 .ssh/目录下执行命令 ssh-keygen -t rsa
[ceph@deploynode .ssh]$ ls
ceph.log config id_rsa id_rsa.pub known_hosts
会发现该目录下生成两个文件,id_rsa, id_rsa.pub
step2. 复制公钥
将id_rsa.pub复制到其他节点下对应用户目录的.ssh/目录下,并执行命令
cat id_rsa.pub >> authorized_keys
注:此次我复制采用sz命令下载到本地中,再通过rz命令上传到其他服务器上,这么做是为了做一些测试。
在每个节点的.ssh目录需要做如下工作
chmod 700 .ssh/
chmod 600 .ssh/*
在/etc/ssh/sshd_config文件中,将如下三行的注释去掉
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
通过sudo visudo, 将#Defaults requiretty改成如下配置
# Defaults specification
#
# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.
# You have to run "ssh -t hostname sudo <cmd>".
#
Defaults:ceph !requiretty
step3. 无密码访问
重启sshd服务
sudo service sshd restart
最后通过deployNode节点访问时就可以无密码访问。
可以发现用户已经切换到mdsnode.
无法无密码访问原因分析
之前拷贝id_rsa.pub时都是通过ssh-copy-id 或者scp命令拷贝,但是真正登录时还是需要密码,
后来看了一下authorized_keys的文件,才猜出来一些东西,就是之前authorized_keys文件的结尾
并不是ceph@deploynode, 而是localhost的相关信息,我对这个文件的理解是,这个公钥是属于
deploynode机器下ceph用户的。当这个用户用ssh访问这台机器时就可以无密码登录,如果此处信息
不是ceph@deploynode,当然不能起到无密码登录的效果.
如果还有无法访问的问题,请关注被访问方的hosts.allow文件,将deployNode节点放置进去。
还不行,请检查iptables中是否对该IP地址的主机开放。