仅当我已在控制台上登录时才会发生 ssh rsa 密钥验证

仅当我已在控制台上登录时才会发生 ssh rsa 密钥验证

无法弄清楚 - 正在对我们的服务器(大约 400 台 Linux 和 UNIX 服务器)使用基于 id_rsa 密钥的身份验证。

在这种情况下,为了便于讨论,我有 3 个相同的服务器,最近安装了 3 个 Ubuntu 12.04 - svr1 svr2 svr3。

它们是 IBM 刀片服务器,因此我能够登录远程控制台。

对于 svr1,我可以使用我的 rsa 密钥正常进行 ssh - 从客户端使用 ssh -vvv 看起来如下:

debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/mbubb/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 279 

并且环境变量已设置并且我处于......

但对于 svr2 (和 3)它看起来像这样:

debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/mbubb/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey
debug1: Offering DSA public key: /home/mbubb/.ssh/id_dsa

... 它循环遍历其他关键选项并最后:

   debug2: we did not send a packet, disable method
   debug1: No more authentication methods to try.
   Permission denied (publickey).

奇怪的是,如果我通过 Bladecenter MM 进行控制台,然后 ssh 到服务器,它就可以正常工作。

当我收到“权限被拒绝”时,查看 svr2 上的 /var/log/auth.log 中没有任何条目。它似乎没有“看到”该尝试。

我检查了目录权限(homedir 和 sshdir),它们是一致的。我比较了 /etc/ssh/sshd_config - 它们是相同的。

也许是 PAM?或者是另一级别的身份验证。

我对此很感兴趣 - 显然这里有一些我没有明白的基本知识......

答案1

如果你使用的是加密主目录,那么解决方法是设置备用authorized_keys位置通过设置

AuthorizedKeysFile    /etc/ssh/%u/authorized_keys

在服务器的sshd_config文件中,因此它会在用户主目录以外的其他地方查找该文件。

该文件可以位于任何位置,但您必须将%u用户的文件分成各自的目录,以便 sshd 找到目录和文件的适当权限。

相关内容