SSH 提示输入密码,即使私钥可用,呈现给服务器并为服务器所知

Cer*_*ber 9 ssh

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

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

有人已经看过了吗?

感谢您花时间提供帮助

cjc*_*cjc 14

用户的主目录是如何挂载的?听起来,无论出于何种原因,如果用户未登录,则用户的主目录不可用,因此 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
Run Code Online (Sandbox Code Playgroud)

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