本文主要向大家介绍了Linux运维知识之linux_无秘登录问题(不生效),通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。
1 、 登录1,执行命令 ssh-keygen -t rsa 之后一路回 车,查看刚生成的无密码钥对: cd .ssh 后 执行 ll
2 、把 id_rsa.pub 追加到授权的 key 里面去。 执行命令 cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
3 、修改权限: 执行 chmod 600 ~/.ssh/authorized_keys
4 、确保 cat /etc/ssh/sshd_config 中存在如下内容
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
如需修改, 则在修改后执行重启 SSH 服 务命令使其生效 :service sshd restart
5 、将公 钥复制到所有其他机器上 :scp ~/.ssh/id_rsa.pub root@2:~/ 然后 输入 yes ,最后 输入 2机器的密 码
6 、在 2 机器上 创建 .ssh 文件夹 :
mkdir ~/.ssh
然后 执行 chmod 700 ~/.ssh (若文件夹以存在 则不需要创建)
7 、追加到授权文件 authorized_keys 执行命令 :
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
然后 执行 chmod 600 ~/.ssh/authorized_keys
8 、重复第 4 步
9 、 验证命令 : 在 1机器上 执行 ssh 2发现主机名由 1变成 2即成功,最后 删除 id_rsa.pub 文件 :rm -r id_rsa.pub
问题出现了:
1机器已经生产rsa密钥
且已经将public key添加到47机器/root/.ssh/authorized_keys
但是ssh root@2机器时仍然需要输入密码,即无密码认证失败,
解决办法:
查看权限:
用ssh -v debug访问,日志如下,但是从日志看不到失败原因,只知道在用publickey认证时,对端没有reply;
再查看/var/log/secure日志
权限问题总结如下:
1) .ssh目录的权限必须是700
2) 用户目录的权限必须是700,比如我是用root用户操作的,则/root的权限必须是700
3) .ssh/authorized_keys文件权限必须是600
4)setenforce 0把SELinux关闭(很重要)
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注系统运维Linux频道!