【发布时间】:2015-11-10 20:03:40
【问题描述】:
我刚刚生成了 rsa 密钥,以便运行 cygwin 的 Windows 10 笔记本电脑无需密码即可登录 CentOS 机器。它工作正常。但是,相同的过程不适用于为另一个远程用户设置无密码登录。我仍然被要求输入密码。
第一个远程用户的步骤如下
在 Windows10 客户端(Cygwin)上:
ssh-keygen -t dsa
chmod 600 /home/John/.ssh/id_dsa
scp /home/John/.ssh/id_dsa.pub UserA@my-server.com:
在 CentOS 服务器上(以 UserA 身份登录,从 /home/UserA/ 目录):
cat id_dsa.pub >> .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
这些步骤运行良好,但出于某种原因,不同远程用户的相同步骤却没有。 ssh UserB@my_server.com 完成后仍然要求输入密码
其他远程用户的相同步骤:
在 Windows10 客户端(Cygwin)上:
ssh-keygen -t dsa
chmod 600 /home/John/.ssh/user_b_dsa
scp /home/John/.ssh/user_b_dsa.pub UserB@my-server.com:
在 CentOS 服务器上(以 UserB 身份登录,从 /home/UserB/ 目录):
cat user_b_dsa.pub >> .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
知道为什么相同的步骤会导致不同的结果吗?我验证了 chmod 命令有效,并验证了 authorized_key 已正确更新
【问题讨论】:
-
调试时需要包含的内容:来自运行
ssh -vvv -i ~/.ssh/user_b_dsa UserB@my-server.com的日志以及来自服务器端的 sshd 的相关日志片段。没有它,我们只能推测。不需要的一件事(可能是原因)是对您的authorized_keys的限制太多 - sshd 需要访问它。~/.ssh上应该是 0755,~/.ssh/authorized_keys上应该是 0644。只有你的私钥需要 0600 权限。