我最近设置了一台服务器,并在该服务器上设置了 RSA 身份验证。我的问题是,如何为不同的用户设置 RSA 身份验证?截至目前,唯一拥有 RSA 身份验证的用户是 root,我不想保持这种状态。我尝试将我的 RSA 密钥添加到 /home/username/.ssh/authorized_keys 并重新启动 SSHD,但我仍然无法使用该用户名登录。有人有什么想法吗?
该死,吉姆,我是一名开发人员,而不是服务器管理员。
答案1
我假设您也通过将密钥放入 /root/.ssh/authorized_keys 来设置 root?权限问题导致用户忽略 authorized_keys 的情况并不少见。
验证 ~/.ssh/ 是否为 700,并验证 ~/.ssh/authorized_keys 是否由用户和 600 拥有:
$ cd ~/.ssh/; ls -ld
drwx------ 2 somedude somegroup 4096 Aug 21 21:09 .
$ ls -l authorized_keys
total 52
-rw------- 1 somedude somegroup 4324 Oct 14 2010 authorized_keys
如果一切看起来都很好但仍然不起作用,请将 /etc/ssh/sshd_config 中的 LogLevel 更改为 DEBUG3 并重新启动 sshd:
# grep LogLev /etc/ssh/sshd_config
LogLevel DEBUG3
# /etc/init.d/sshd restart
现在尝试 ssh 到您的机器。您应该会得到系统日志输出,希望它能指出问题所在。如果您在任何日志中都看不到调试输出,请尝试停止 sshd 并在命令行上运行它:
# /etc/init.d/sshd stop; sshd -d
(这里要小心,sshd 将在调试中第一次连接后死亡,因此请快速重新启动它,否则 ssh 将会在您的机器上关闭...)
如果不清楚问题是什么,请将调试输出以及 ssh -v username@server 的输出发布到问题中。