Secure Shell(SSH)是用于客户端和服务器之间安全连接的加密网络协议,并支持各种身份验证机制。

两种最流行的机制是基于密码的身份验证和基于公钥的身份验证。与传统的密码验证相比,使用SSH密钥更安全,更方便。

本教程介绍了如何使用PuTTYgen在Windows上生成SSH密钥。我们还将向您展示如何设置基于SSH密钥的身份验证以及如何在不输入密码的情况下连接到远程Linux服务器。

下载PuTTYgen

PuTTYgen是一个开源实用程序,可让您为最流行的Windows SSH客户端 PuTTY ,生成SSH密钥。

PuTTYgen可作为独立的可执行文件使用,它也是PuTTY .msi安装软件包的一部分。如果您尚未安装PuTTYgen,请转到 PuTTY下载页面,然后下载PuTTY安装软件包。安装很简单,双击安装包,然后按照说明进行操作。

使用PuTTYgen创建SSH密钥

要使用PuTTYgen在Windows上生成SSH密钥对,请执行以下步骤:

启动PuTTYgen工具,方法是双击它的.exe文件或转到Windows的“开始”菜单→PuTTY(64位)→PuTTYgen。

对于“要生成的密钥类型”,请保留默认的RSA。对于大多数人来说,“生成的密钥中的位数” 204​​8就足够了。另外,您也可以将其更改为4096。

单击“生成”按钮开始生成新密钥对的过程。

系统会要求您将鼠标移到“键”部分的空白区域上,以产生一些随机性。移动指针时,绿色进度条将前进。该过程应花费几秒钟。

生成过程完成后,公共密钥将显示在窗口中。

如果要使用密码短语(可选),请在“密钥密码短语”字段中键入密码,然后在“确认密码短语”字段中确认相同的密码短语。如果您选择使用密码短语,则可以通过防止私钥被未经授权的使用来获得额外的安全保护。

如果您设置了密码短语,则每次使用私钥时都需要输入密码短语。

通过单击“保存私钥”按钮来保存私钥。您可以使用.ppk扩展名(PuTTY私钥)将文件保存在任何目录中,但是建议将其保存在易于找到的位置。通常使用描述性名称作为私钥文件。

您也可以保存公钥,尽管稍后可以通过加载私钥来重新生成它(可选)。

右键单击标记为“用于粘贴到OpenSSHauthorized_keys文件的公共密钥”的文本字段,然后单击“全选”选择所有字符。打开文本编辑器,粘贴字符并保存。确保粘贴整个密钥。建议将文件保存在与保存私钥相同的目录中,并使用与私钥和.txt或.pub相同的名称作为文件扩展名。

这是将其添加到Linux服务器的密钥。

将公钥复制到您的Linux服务器

现在您已经生成了SSH密钥对,下一步是将公共密钥复制到您要管理的服务器。

启动PuTTY程序并登录到远程Linux服务器。

如果您的用户SSH目录不存在,请使用 mkdir命令创建它,并设置正确的权限:

mkdir -p ~/.ssh
chmod 0700 ~/.ssh

打开文本编辑器,然后将在生成密钥对时在步骤4中复制的公共密钥粘贴到~/.ssh/authorized_keys文件中:

nano ~/.ssh/authorized_keys

整个公钥文本应该在一行上。

运行以下 chmod 命令,确保只有您的用户才能读写~/.ssh/authorized_keys文件:

chmod 0600 ~/.ssh/authorized_keys

使用SSH密钥登录服务器

Pageant是一个PuTTY SSH身份验证代理,它在内存中保存私钥。 Pageant二进制文件是PuTTY .msi安装软件包的一部分,可以通过进入Windows的“开始”菜单→PuTTY(64位)→Pageant来启动。

启动Pageant时,它将在系统托盘中放置一个图标。双击图标,将打开“选美”窗口。

要加载密钥,请按“添加密钥”按钮,这将打开一个新文件对话框。找到私钥文件,然后按“打开”。如果您尚未设置密码,则密钥会立即加载。否则,将提示您输入密码。

输入密码,Pageant将加载私钥。

完成上述步骤后,您应该能够登录远程服务器而无需提示输入密码。

要测试它,请打开一个新的PuTTY SSH会话,然后尝试登录到您的服务器。 PuTTY将使用已加载的密钥,您将无需输入密码即可登录Linux服务器。

禁用SSH密码身份验证

要为您的服务器添加额外的安全性,您可以禁用SSH的密码身份验证。

在禁用SSH密码身份验证之前,请确保您可以不使用密码登录服务器,并且您使用的登录用户具有 sudo权限

登录到远程服务器,然后使用文本编辑器打开SSH配置文件/etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

搜索以下指令并进行如下修改:

/etc/ssh/sshd_config

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

完成后,保存文件并通过键入以下内容重新启动SSH服务:

sudo systemctl restart ssh

此时,基于密码的身份验证已禁用。

结论

在本教程中,您学习了如何生成新的SSH密钥对并设置基于SSH密钥的身份验证。您可以将同一密钥添加到多个远程服务器。我们还向您展示了如何禁用SSH密码身份验证以及如何为服务器添加额外的安全性。

默认情况下,SSH侦听端口22。更改默认SSH端口将降低自动攻击的风险。

如果您有任何疑问或反馈,请随时发表评论。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持