SSH 连接要求输入密码而不是密钥

SSH 连接要求输入密码而不是密钥

好的,我正在尝试使用 SSH 从一台服务器连接到另一台服务器。

我已经使用 ssh-copy-id 将密钥从“客户端”机器复制到“服务器”,但它仍然出现密码提示,因此我检查了 /var/log/secure 中的日志并看到“身份验证被拒绝:目录的所有权或模式错误”错误,我使用用户帐户(非 root 帐户)的 .ssh 目录和文件上的 chmod 修复了该错误。

现在 /var/log/secure 文件中不再报告任何错误,“客户端”端 ssh 的 -v 日志显示以下内容:

debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug1: Offering public key: /root/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Next authentication method: password

然后它要求输入密码...Selinux 已禁用。

有任何想法吗?

谢谢

斯图尔特

答案1

首先,您对.ssh目录应该是:

drwx------

关键文件应该是:

-rw-------

完成此操作后,在您的服务器上.ssh/授权密钥附加用于身份验证的公钥。

此外,名称应为 id_dsa* 或 id_rsa*,以使默认 ssh 正常工作。如果您有其他名称,请使用以下命令:

ssh -i /path/to/mykey

答案2

好的,我找到了问题所在 - 原来用户的 .ssh 目录归 root 所有,而不是用户本身。这似乎不会在日志中触发“身份验证被拒绝:目录所有权或模式错误”错误,我觉得这有点奇怪。

相关内容