即使私钥可用、已提供给服务器且服务器已知,SSH 仍会提示输入密码

即使私钥可用、已提供给服务器且服务器已知,SSH 仍会提示输入密码

我在 VirtualBox 机器中有一个 ubuntu 桌面,而 openssh 服务器出现了奇怪的行为:

  • 当我的用户尚未连接到服务器(第一个 ssh 连接)时,即使私钥可用(PuTTY + Pagent),它也会提示输入密码。在第一次连接之后,如果我打开第二个或第三个连接,它会使用密钥进行连接。
  • 如果我关闭所有连接并打开一个新连接,它会提示输入密码。
  • 如果我打开了 4 个连接,然后关闭第一个连接(提示输入密码的连接),则第五个连接将使用密钥打开

有谁已经看过这个了吗?

感谢您抽出时间提供帮助

答案1

用户的主目录是如何挂载的?听起来,无论出于什么原因,如果用户未登录,则用户的主目录不可用,因此 sshd 找不到 authorized_keys 文件。

另外,请查看服务器上的 /var/log/auth.log 中是否有任何消息。

更新:如果需要进行无密码登录,您可以更改 sshd_config 文件以在非加密目录中查找 authorzied_keys。 http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&sektion=5

我认为这样的事情会起作用(未经测试):

AuthorizedKeysFile /etc/ssh/pubkeys/%u/authorized_keys .ssh/authorized_keys

这应该会告诉 sshd 检查未加密位置和加密位置中的公钥。查看手册页以获取更多信息。

相关内容