SSH 密钥交换不起作用

SSH 密钥交换不起作用

有什么方法可以验证为什么两台服务器之间的 SSH 密钥交换不起作用?

在服务器A中:我执行了以下步骤:

ssh-keygen –t rsa
cd /.ssh
cp id_rsa.pub authorized_keys

然后在服务器 B 中:我创建了目录并从服务器 A.ssh上传authorized_keys

我尝试从服务器 A 登录到服务器 B,但系统仍提示我输入密码。

我尝试使用这个:在服务器 (A) 上,您通过 ssh user1@host 连接吗?您可以尝试 ssh -o PreferredAuthentications=publickey user1@host,但它显示权限被拒绝权限被拒绝 (gssapi-keyex、gssapi-with-mic、publickey、password、keyboard-interactive)。

有什么建议可以帮你检查哪里出了问题吗?只是在服务器 A 中没有使用 root 帐户,所以需要提供一些附加信息。

答案1

尝试一下ssh -v这应该可以提供有关身份验证过程的更多信息。

debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password,keyboard-interactive,hostbased
debug1: Offering RSA public key: /home/nce/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 277

只是为了确认您的步骤:您通过 ssh-keygen 创建了一个密钥对,然后将密钥上传.ssh/id_rsa.pub到服务器(B)并将其附加到.ssh/authorized_keys用户 1。

在服务器(A)上,你通过什么方式连接ssh user1@host?你可以尝试ssh -o PreferredAuthentications=publickey user1@host

您可以通过以下方式提供特殊/不同的身份文件ssh -i ~/.ssh/serverB/id_rsa user1@host

答案2

检查服务器 authorized_keys 文件的权限。如果它对 group/other 具有写入权限,则使用公钥登录将失败,并在密码可用的情况下恢复使用密码。如果需要,请将 authorized_keys 文件的权限更改为 644。

有可能,但可能性较小,因为你的文件中禁用了公钥身份验证/etc/ssh/sshd_config。检查配置文件中是否不包含以下行

PubkeyAuthentication no

如果确实如此,则将其注释掉(默认为是)并重新启动 sshd 服务。

答案3

给你一个提示:查看 serverB 的 sshd 日志(/var/log/secure基于 Red Hat)

http://www.openssh.org/faq.html#3.14

而对于未来,您应该使用它ssh-copy-id来代替手动复制。

答案4

此命令不应该起作用:

cd /.ssh

这是拼写错误吗?还是您将 id_rsa.pub 文件复制到 authorized_keys 时放错了地方?

登录到服务器 B 并cat ~/.ssh/authorized_keys查看它是否包含服务器 A 上的相同文件的内容。

请注意,保留服务器 A 上的 authorized_keys 文件并不重要,因为它不用于从服务器 A 到服务器 B 的身份验证交易。您只需要服务器 A 上 ~.ssh/ 中的 id_rsa 文件。

相关内容