想不通——我对我们的服务器(大约 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
Run Code Online (Sandbox Code Playgroud)
和环境变量设置,我在......
但是对于 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
Run Code Online (Sandbox Code Playgroud)
...它循环其他关键选项,最后:
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我通过 Bladecenter MM 进行控制台,然后通过 ssh 连接到服务器,它工作正常。
查看 svr2 上的 /var/log/auth.log,当我收到“权限被拒绝”时没有条目。它似乎没有“看到”尝试。
我检查了目录权限(homedir 和 sshdir),它们是一致的。我比较了 /etc/ssh/sshd_config - 它们是相同的。
也许是PAM?或其他级别的身份验证。
我对此很感兴趣 - 显然这里有一些基本的东西我没有得到......
如果您使用的是加密的主目录,则解决方法是通过设置来设置备用authorized_keys位置
AuthorizedKeysFile /etc/ssh/%u/authorized_keys
Run Code Online (Sandbox Code Playgroud)
在服务器的sshd_config文件中,因此它看起来不是用户的文件主目录。
该文件可以位于任何地方,但您必须%u将用户的文件分隔到他们自己的目录中,以便 sshd 为目录和文件找到适当的权限。
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |