通常建议尽可能使用 SSH 密钥身份验证,尤其是对于可通过互联网访问的服务器或系统。这是因为 SSH 密钥身份验证基于非对称加密,被认为比密码身份验证更安全。由于私钥通常比密码长得多且更难猜测,因此它能够提供更强大的防御暴力破解攻击的能力。SSH 密钥身份验证还可以自动化,从而实现无密码登录,并更轻松地与脚本和自动化流程集成。此外,私钥可以使用密码短语进行保护,从而增加额外的安全保障。在本教程中,我们将向您展示如何在 Windows 中使用 puTTy 通过 SSH 密钥连接到 Ubuntu Linux VPS。
准备工作
PuTTY的初始设置
在 PuTTY 中为您的远程服务器创建已保存的配置文件
在 PuTTy 中,您可以为不同的远程服务器连接创建保存的会话或配置文件,这样您不必每次都手动配置连接设置。
打开 PuTTy,导航到“会话”类别。配置以下内容:
1. 主机名:您的 VPS 的 IP 地址或其完全限定域名。2
. 端口: SSH 的默认端口为 22。建议更改服务器的 SSH 端口,以减少暴力破解攻击。在本例中,我们将使用默认端口 22。

连接类别,数据子类别
1. 自动登录用户名:输入您用于登录服务器的用户名。这里我们使用管理员。

返回会话类别
1. 已保存的会话:为该会话指定一个名称,然后单击“保存”。下次打开 PuTTY 时,只需双击该会话名称,即可立即启动该会话,无需再次输入上述信息。

如何生成 SSH 密钥?
生成公钥/私钥 SSH 密钥对
双击下载的 PuTTygen 文件 – PuTTygen.exe。在“参数”部分,密钥生成类型保留默认设置,例如RSA。但是,不建议使用 SSH-1 (RSA) 类型,因为它的安全性较低。然后,将生成的密钥位数指定为2048 或 4096。位数越高,通过暴力破解密钥的难度就越大。最后,点击“生成”按钮。


将鼠标光标移动到进度条下方,直到进度条满为止。


在这里,您可以看到已生成 SSH 密钥对。
密钥注释:您可以输入任何注释,例如电子邮件地址和具体名称,以便稍后识别此密钥对。当您生成多个密钥对时,注释尤其有用。
密钥密码和确认密码:如果您想在 SSH 密钥之上添加额外的安全保障,可以在此处输入密码。否则,请留空。在本例中,我们使用没有密码的 SSH 密钥。


保存私钥
点击“保存私钥”并指定文件名,将私钥保存到您的电脑。文件后缀应为.ppk。请确保将其保存到只有您可以访问且不会丢失的位置!如果您丢失了密钥并禁用了用户名/密码登录,您将无法再登录!


保存公钥
单击“保存公钥”,并指定一个您可以识别的文件名,将公钥保存到您的计算机中。


将公钥复制到远程服务器
从 PuTTYgen 窗口复制公钥


连接到服务器
打开PuTTY,双击会话名称即可启动已保存的会话。



然后根据提示输入自动登录用户的密码。



导航到 ~/.ssh 文件夹并使用 nano 命令将复制的公钥粘贴到 authorized_keys 文件中
cd /home/administrator/.ssh/ 纳米授权密钥




然后,按下键盘上的 Ctrl + x,输入 y,然后按 Enter 保存更改。
注意如果authorized_keys文件不存在,您可以手动创建它。
开始您的第一个 SSH 密钥登录
将私钥附加到您保存的会话
断开当前会话,然后重新打开PuTTy。单击已保存的会话名称,然后点击“加载”按钮。


前往连接 – SSH – 授权。点击 浏览器 。然后,找到之前保存在电脑上的私钥文件,点击 打开 。


返回“会话”类别
,在“已保存”会话中,点击“保存”。现在,您已将私钥附加到测试服务器已保存的会话中。



使用 SSH 密钥启动会话
打开PuTTy,选择保存的会话,然后单击“打开”。您可以看到您已自动登录,无需输入密码。


禁用密码登录
验证 SSH 密钥登录正常后,您可以禁用用户名/密码登录以提高安全性。为此,您需要编辑 SSH 服务器的配置文件。在 Debian/Ubuntu 系统上,此文件位于 /etc/ssh/sshd_config。在本例中,我们使用 nano 编辑器通过以下命令进行更改。其他编辑器也可以使用。
sudo nano /etc/ssh/sshd_config
在文件中,将PasswordAuthentication和UsePAM的值更改为no。然后按 ctrl + x 保存更改,然后按 y 并回车。






相信大家看完这份教程,就可以放心地使用 PuTTY 从 Windows 设备连接到 Ubuntu Linux 系统,并获取 SSH 密钥。这种安全高效的身份验证方法可确保无缝的远程访问体验,同时确保用户敏感信息的安全。