Linux 通过SSH实现无密码登录

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地址的主机开放。

转载于:https://my.oschina.net/myspaceNUAA/blog/498922

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值