我有一台服务器,我希望能够通过 SSH 与两个不同的用户连接。我已经为第一个用户设置了公钥身份验证,并且工作正常,但是,我无法使用第二个用户登录。该文件的区别authorized_keys
在于,第二个用户有两个密钥(验证时都失败)。 .ssh目录和授权密钥文件都有755权限。 ssh 客户端发送我想要进行身份验证的密钥。可能是什么问题呢?
答案1
首先,.ssh 目录应具有 700 权限,authorized_keys 文件应具有 600 权限。
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
如果您使用 root 为 userB 创建了文件,那么也可以执行以下操作:
chown -R userb:userb .ssh
如果问题仍然存在,请将 ssh 日志文件的输出发布到您的问题中,我将更新我的答案。
对于 Debian:
less /var/log/auth
对于红帽:
less /var/log/secure
答案2
我在以下位置找到了这条消息/var/log/auth.log
:
Oct 22 13:27:58 hagyma sshd[27420]: User userb not allowed because account is locked
我已经为 userb 设置了密码sudo passwd userb
,它解锁了该帐户。
答案3
对我来说,sshd
被忽略,~/.ssh/authorized_keys
因为/home
分区是以一种不寻常的方式安装的。我尝试了所有方法,设置了正确的权限,并且仅在修改后才起作用sshd_config
:
StrictModes no
答案4
由于 SELinux,我也遇到了同样的问题。
请正确配置 SELinux ( restorecon -Rv ~/.ssh
) 或禁用它(在 RedHat 上,您应该编辑/etc/selinux/config
并重新启动计算机,或者只是键入setenforce 0
暂时禁用 SELinux,直到下次重新启动为止)。