SSH 忽略用户并使用另一个用户登录

SSH 忽略用户并使用另一个用户登录

我在 EC2 计算机 (ubuntu) 中创建新用户 (newuser) 后,添加authorized_key 并尝试通过 ssh 进入其中,但不起作用。现在,如果失败了,那一切都很好,但即使在命令中设置了-l或 ,它实际上也能成功使用旧用户登录。user@

sshd 怎么可能忽略用户并回退到以前的登录?无论我尝试什么,除了从其他用户删除密钥并重新启动 ssh 服务器之外,都不可能以新用户身份登录。

➜ ~ ssh -l 新用户主机
最后登录: 2017 年 11 月 2 日星期四 10:09:08 来自 5.xxx
ubuntu@ip-172-xxx:~$ whoami
乌班图
➜ ~ ssh newuser@thehost
最后登录: 2017 年 11 月 2 日星期四 10:11:17 来自 5.xxx
ubuntu@ip-172-xxx:~$ whoami
乌班图

我推测它与 ssh 代理或使用密钥有关,但这非常难以理解,而且在过去两周之前我从未遇到过这个问题,所以我不知道它是一个新功能还是什么。

编辑:看起来它可能与 PAM 身份验证和密钥的某些缓存有关,因为它完全忽略用户名。您可以输入无效的用户或任何内容,它仍然会成功登录。

答案1

SSH 将尝试文件中的所有密钥,~/.ssh/authorized_keys直到找到匹配的密钥或无法进行身份验证。一旦公钥认证失败,如果有的话,它将尝试下一种认证方法。

因此,如果您将旧公钥放在远程主机文件的首位~/.ssh/authorized_keys,则旧密钥将是找到的第一个密钥。

在本地主机端,ssh 代理发挥作用。私钥将被添加到缓存的 ssh 代理中,并且将尝试这些密钥,直到与远程主机的公钥匹配为止。

相关内容