我有两台机器:
- 运行 Lubuntu 的服务器(拉根宾)
- 运行 Windows 7 的 PC(法罗尔)
我一直使用 SSH 从 Windows PC 访问 Lubuntu 服务器。但是,到目前为止,我一直只使用密码验证,这显然不安全。今天我决定坚持下去并生成一些密钥。
不幸的是,它不起作用。当我从我的 Windows 机器上单击生成的 .ppk 私钥文件(尝试使用 Putty 打开它)时,我只收到一条错误消息:
PuTTY 错误:无法打开与 C 的连接:主机不存在。
以下是我经历的步骤。你能告诉我哪里出了问题吗?请记住,我已经在 Lubuntu 服务器上安装了 opensshserver,并使用密码验证。
我使用以下方式创建了我的密钥
chmod 700 ~/.ssh ssh-keygen -t rsa
我将它们作为 id_rsa 保存在 .ssh 文件夹中,并为它们创建了一个密码。
我关闭了密码验证,将 SSH 访问权限限制为仅限我的用户,并关闭了 X11 转发
sshd_config
:PasswordAuthentication no X11Forwarding no AllowUsers ***
我在 ufw 中限制了 SSH。
然后我创建了一个名为 的文件
authorized_keys
,.ssh
并将 的内容复制id_rsa.pub
到其中并保存。我将私钥(
id_rsa
)传输到我的 Windows 机器上,用 puttygen.exe 打开它,并将其保存为文件.ppk
。
现在,当我尝试使用 PuTTY 本身打开该 .ppk 文件时,出现错误消息。
我做错了什么?谢谢。
答案1
您做错的主要事情是期望 PuTTY 打开 .ppk 文件:据我所知,密钥文件本身不包含有关目标主机的任何信息(事实上,这没有意义,因为可以使用相同的密钥对来访问不同的主机)。
相反,您应该正常打开PuTTY,并配置一个会话来使用Connection通过选择--> SSH-->Auth并浏览到以下位置的 .ppk 文件来获取密钥文件Private key file for authentication
:
或者,您可以在 Windows 会话中运行 PuTTYpagent
并向其中添加密钥:PuTTY 将每次尝试通过代理进行身份验证,而不需要明确指定私钥文件。