SSH 密钥已接受,但远程主机要求输入密码

SSH 密钥已接受,但远程主机要求输入密码

我正在尝试让两台服务器通过 ssh 密钥连接。这两台服务器之前有工作的 ssh 密钥身份验证,但其中一台失败并从备份中恢复。从那时起,钥匙似乎就不起作用了。我尝试过以下方法:

  • 确保权限设置正确
  • 删除主机的所有远程条目并重新开始
  • 生成新密钥

当我第一次设置它时,我使用 生成了一个密钥ssh-keygen,并使用 复制了它ssh-copy-id,事情进展顺利。现在,即使从头开始,情况也并非如此。

这是一个小型、孤立的环境,因此没有发生任何复杂的事情 - 我没有使用ssh-agent, 或密钥的密码。

阅读远程服务器的日志,我可以看到密钥已被接受,但它仍然提示输入密码。我不太确定出了什么问题,并且会很感激您的指导。

谢谢!

答案1

首先,您可以使用-vvv选项从 ssh 获取调试信息。

ssh -vvv user@host

其次,大多数系统只接受几次(大约 6 次)尝试,因此如果您有更多 ssh 密钥,那么您应该具体指出,因为错误的密钥可能会使用来自 ssh 服务器的可用挑战。 (可以通过MaxAuthTries中的参数进行配置/etc/ssh/sshd_config)。指向特定的按键使用-i选项

ssh -i ~/.ssh/my_key user@host

如果您确定问题出在服务器上,您应该至少检查以下内容:

  1. 检查~/.ssh/authorized_keys~/.ssh权限。
  2. 如果您在 /home 上使用 SELinux restorecon 并使用 sealert 检查审计日志
  3. 如果仍然无法正常工作,请检查 sshd 日志。

相关内容