我正在尝试使用基于密钥的身份验证从 Windows 7 连接到 Linux 服务器。为此,我使用 PuTTY keygen 工具创建了一对公钥/私钥,并将公钥的内容复制到服务器的.ssh/authorized_keys
文件中。当我使用ssh
Windows 操作系统中的命令行并输入: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
文件或由于某种原因忽略它,它将在那里记录一条错误消息 - 错误消息将包含原因。