如何通过基于 SSH 密钥的身份验证从 Windows 连接到 Linux?

如何通过基于 SSH 密钥的身份验证从 Windows 连接到 Linux?

我正在尝试使用基于密钥的身份验证从 Windows 7 连接到 Linux 服务器。为此,我使用 PuTTY keygen 工具创建了一对公钥/私钥,并将公钥的内容复制到服务器的.ssh/authorized_keys文件中。当我使用sshWindows 操作系统中的命令行并输入:ssh user@server它会要求输入密码,这是不应该发生的,因为它必须从我的文件夹中读取私钥.ssh

点击查看图片

当我使用 PuTTY 并指定私钥时,我也会收到此消息:

点击查看图片

我的 Windows 操作系统上的密钥对位于我的用户帐户文件夹中,位置如下.ssh

点击查看图片

在Linux服务器中,公钥位于文件夹authorized_keys中的文件中~/.ssh

点击查看图片

我的公钥是这样的:

点击查看图片

我不知道这些东西有什么问题。

答案1

[noeol]在查看文件中的公钥时,编辑器正在显示authorized_keys- 这可能是一个问题。添加缺少的行尾字符。

Linux 服务器上的文件是否authorized_keys受到保护,以便服务器的其他用户无法修改它?如果没有,那么sshd将忽略它。更具体地说,文件authorized_keys.ssh子目录和用户的主目录都需要只有用户自己可写。

如果这些提示不能解决问题,请检查服务器的身份验证日志。在 Linux 中,这通常是 或 ,/var/log/secure具体/var/log/auth.log取决于发行版。sshd如果守护进程无法读取authorized_key文件或由于某种原因忽略它,它将在那里记录一条错误消息 - 错误消息将包含原因。

相关内容