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关闭(很重要)

原文地址:https://www.cnblogs.com/cphmvp/p/6400376.html