OpenSSH-PuTTY(密钥被拒绝)

OpenSSH-PuTTY(密钥被拒绝)

我正在设置一个小型 OpenSSH 服务器,这样我就不用坐在家里的电脑前就可以访问重要文件了。我已经成功设置了服务器,但现在我想设置密钥身份验证(这样别人就更难入侵了)。

我从 Lubuntu 设置中复制了密钥,将它们复制到我的 Windows 机器上,然后将它们转换.ppk普蒂根。在SSH -> Auth部分中,我选择了我的RSA.ppk密钥文件,保存了设置并登录到服务器。我输入了我的用户名,但随后,我收到了输出:Server refused our key

我已取消注释了HostKey中的RSAECDSAED25519sshd_config。我不知道还应该做什么。

答案1

使用 PuTTYgen,我创建了一个随机的公钥/私钥对,并将输出框中的文本粘贴到文件中~/.ssh/authorized_keys。密钥文件身份验证完美运行。

答案2

SSH 使用两组不同的非对称(私钥/公钥)密钥——一组用于向客户端验证主机/服务器的身份,另一组密钥(可选)用于向主机/服务器验证客户端的身份。

HostKey中的配置用于主机的密钥,而不是任何客户端的密钥。 中用于为客户端启用公钥身份验证的sshd_config指令是,但您无需指定(或通常取消注释)它,因为它默认处于启用状态。sshd_configPubKeyAuthentication

它应该有效,对我来说,使用 PuTTYgen 转换 OpenSSH 生成的密钥并按照您描述的方式在 PuTTY 中使用它,但是仅有的如果它适用~/.ssh/authorized_keys于适当的用户 (*)——这对于任何客户端密钥都是必需的,无论在何处或如何生成。在一个 Unix 系统上生成密钥不会自动将其添加到authorized_keys该系统上(因为您通常不需要 ssh 来访问您已经在使用的系统)或任何其他系统(因为该系统无法知道您可能希望访问哪些其他系统,包括可能几年后)。您提到authorized_keys只为新的 PuTTYgen 生成的密钥添加,而不是为 Unix 生成和 PuTTYgen 转换的密钥添加。

(*) 或其他位置(如果AuthorizedKeysFilein指定)sshd_config但这种情况很少见

相关内容