解决 SSH 连接问题

解决 SSH 连接问题

我正在寻找有关如何解决通过 SSH 连接到新服务器的问题的提示。我正在尝试使用私钥身份验证进行连接,其中 SSH 使用我的本地私钥进行身份验证,而不提示输入密码,但遇到了问题。

当我运行时ssh root@newserver,连接立即成功,而不提示我输入密码。相反,当我运行 时ssh user@newserver,私钥身份验证尝试失败,并提示我输入密码。我对后者失败的原因感到困惑。我应该尝试什么来调试这个?

我已经尝试过的事情:

  • 我仔细检查过/root/.ssh/authorized_keys并且/home/user/.ssh/authorized_keys.两者是相同的,并且都包含我的公钥。

  • 我仔细检查了 的权限/root/.ssh/home/user/.ssh目录newserver。一切看起来都很好,无论如何,两者的权限都是相同的。

  • 我尝试从两个不同的客户端登录,并在两个客户端上看到相同的行为,所以我认为这不是特定于客户端的。我可以从这两个客户端成功登录其他服务器。

  • 我尝试/usr/sbin/sshd -d -p 2323在新服务器上运行,然后使用ssh -p 2323 root@newserver和连接ssh -p 2323 user@newserver。这是令人费解的部分:当我sshd从命令行手动启动时,我可以通过私钥身份验证登录(root以及),但是当我尝试使用系统标准时,我只能登录通过私钥身份验证进入但不进入。usersshdrootuser

  • 我跑了ssh -v。我没有看到任何有启发性的消息:随着ssh -v root@newserver,我明白了

    debug1: Offering DSA public key: /home/user/.ssh/id_dsa
    debug1: Server accepts key: pkalg ssh-dss blen 433
    

    有了ssh -v user@newserver,我得到

    debug1: Offering DSA public key: /home/daw/.ssh/id_dsa
    debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
    

    添加更多-v的 不会带来任何洞察力;与ssh -vvvvv bingen.cs.berkeley.edu,我得到

    debug1: Offering DSA public key: /home/daw/.ssh/id_dsa
    debug3: send_pubkey_test
    debug2: we sent a publickey packet, wait for reply
    debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
    

    因此没有说明为什么尝试通过私钥身份验证登录失败。

这是 Fedora 21,openssh-6.6.1p1-11.1.fc21.x86_64。

答案1

我认为nlu已经指出了正确的方向。

一般来说,追踪 ssh 问题的更好方法是sshd在服务器端停止 ssh,然后使用 启动它$(which sshd) -d

几乎在所有情况下,这都会为您提供更有意义的错误消息。

更新:抱歉 - 你已经这样做了。

cli 上的 sshd 和服务上的 sshd 似乎有一个区别:SELINUX。

在 CLI 上,它没有那么严格。你有启用selinux吗?如果是这样 - 检查 se-logs/设置!

答案2

您还应该检查 /home/user/.ssh/authorized_keys 的所有权和权限。

答案3

事实证明这是 SELinux 中文件的权限问题~/.ssh/。我从存储在外部驱动器上的备份中复制了文件,我猜它们收到了不同的标签,并且保留了不正确的标签。

我早该知道。当遇到可能是权限问题的令人费解的故障时,请务必检查 SELinux。

修复:restorecon -r /home/user/.ssh.

相关内容