在 Linux 服务器上使用 PuTTY 配置_无密码 SSH 密钥身份验证_
SSH(安全外壳)是一种流行的协议,用于通过网络安全地连接到远程服务器。使用 SSH 连接服务器时,通常需要提供用户名和密码来验证您的身份。但是,如果您需要频繁连接多台服务器,此过程可能会非常繁琐。幸运的是,有一个解决方案:无密码 SSH 密钥身份验证。
在本文中,我们将引导您使用 PuTTY(一款流行的 Windows SSH 客户端)在 Linux 服务器上设置无密码 SSH 密钥身份验证。通过此设置,您可以快速安全地连接到服务器,而无需每次都输入密码。
先决条件
开始之前,请确保您已具备以下条件 -
要使用 SSH 连接的 Linux 服务器。
已在 Windows 计算机上安装 PuTTY。您可以从官方网站下载 PuTTY。
Linux 命令的基础知识以及如何使用命令行。
为什么使用无密码 SSH 密钥身份验证?
使用无密码 SSH 密钥身份验证有几个好处 -
更高的安全性 - SSH 密钥提供了一种比密码更安全的身份验证方式,因为密码更难猜测或破解。
方便 - 使用 SSH 密钥,您无需在每次连接到服务器时记住或输入密码。
自动化 - SSH 密钥可用于自动执行远程服务器上的任务,例如运行脚本或执行命令。
使用PuTTYgen
要使用无密码 SSH 密钥身份验证,您需要生成公钥/私钥对。PuTTYgen 是一款用于在 PuTTY 中生成和管理 SSH 密钥的工具。
按照以下步骤使用 PuTTYgen 生成 SSH 密钥 -
从官方网站下载并安装 PuTTY。
在"开始"菜单中搜索 PuTTYgen 并打开它。
点击"生成"按钮创建新的密钥对。将鼠标移动到空白区域周围,即可为密钥生成随机数据。
为您的私钥设置密码。使用私钥时需要此密码,请务必记住。
点击"保存私钥"按钮保存您的私钥。选择一个安全的位置来保存文件。
将"用于粘贴到 OpenSSH 授权密钥文件中的公钥"字段的内容复制到剪贴板。这就是您的公钥。
将公钥添加到 Linux 服务器上的授权密钥文件中
现在您已经生成了 SSH 密钥对,您需要将公钥添加到要连接的 Linux 服务器上的授权密钥文件中。请按照以下步骤操作 -
使用您的密码登录 Linux 服务器。
如果 .ssh 目录尚不存在,请在主目录中创建一个。运行以下命令 - mkdir -p ~/.ssh。
在文本编辑器中打开授权密钥文件。运行以下命令:nano ~/.ssh/authorized_keys。
将您之前复制的公钥内容粘贴到authorized_keys文件中。
按Ctrl-X,然后按Y,再按Enter保存并关闭文件。
运行以下命令设置.ssh目录和authorized_keys文件的权限:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
设置 Linux 服务器上 .ssh 目录和 authorized_keys 文件的权限
为了使 SSH 正常工作,Linux 服务器上的 .ssh 目录和 authorized_keys 文件需要具有正确的权限。请按照以下步骤正确设置权限 -
使用您的密码登录 Linux 服务器。
运行以下命令导航到您的主目录:cd ~。
运行以下命令设置 .ssh 目录的权限:chmod 700 ~/.ssh。
运行以下命令设置 authorized_keys 文件的权限:chmod 600 ~/.ssh/authorized_keys。
使用 PuTTY 进行 SSH 代理转发
SSH 代理转发是一项实用功能,可让您在远程服务器上使用 SSH 密钥。如果您需要使用同一密钥连接到多个服务器,或者需要执行多个 SSH 跳转才能到达远程服务器,这将非常有用。
要启用 SSH 代理转发,您需要执行以下步骤 -
检查本地计算机上是否启用了 SSH 代理转发 -
在本地计算机上运行以下命令以检查 SSH 代理转发是否已启用 -
$ echo "$SSH_AUTH_SOCK"
如果输出是套接字文件的路径(例如 /tmp/ssh-XXXXXXXX/agent.XXXXXX),则表示 SSH 代理转发已启用。
在远程服务器上启用 SSH 代理转发−
您需要在远程服务器上的 SSH 配置文件 (/etc/ssh/sshd_config) 中添加以下行 −
AllowAgentForwarding yes
完成此更改后,您需要在远程服务器上重新启动 SSH 服务 −
$ sudo systemctl restart sshd
启用 SSH 代理转发功能后连接到远程服务器 −
要启用 SSH 代理转发功能后连接到远程服务器,请在 ssh 命令中使用 -A 选项 −
$ ssh -A remote_server
连接到远程服务器后,您可以使用 SSH 密钥连接到其他可以识别该密钥的服务器。
例如,假设您需要连接到第二个可以识别您的 SSH 密钥的远程服务器 (second_remote_server)。您可以使用以下命令从远程服务器 (remote_server) 连接到该服务器 -
配置 PuTTY 使用私钥
最后一步是配置 PuTTY 在连接到 Linux 服务器时使用您的私钥。操作方法如下 -
打开 PuTTY,然后转到"会话"类别。
在"主机名(或 IP 地址)"字段中输入 Linux 服务器的主机名或 IP 地址。
在"连接"类别下,展开"SSH"子类别,然后点击"身份验证"。
点击"用于身份验证的私钥文件"字段旁边的"浏览"按钮,然后选择您在步骤 1 中保存的私钥文件。
点击"打开"按钮启动 SSH 会话。
现在您应该能够连接到 Linux 服务器,而无需输入密码。 PuTTY 将自动使用私钥进行身份验证。
故障排除
如果您无法使用私钥连接到 Linux 服务器,请尝试以下故障排除步骤 -
确保公钥已正确添加到 Linux 服务器上的 authorized_keys 文件中。
确保 Linux 服务器上 .ssh 目录和 authorized_keys 文件的权限设置正确。
确保私钥文件以正确的格式保存(PuTTY 默认使用 .ppk 格式)。
确保在 PuTTY 中正确选择了私钥文件。
结论
无密码 SSH 密钥身份验证是一种快速安全地连接到 Linux 服务器的便捷方式。按照本文概述的步骤操作,您现在应该能够使用 PuTTY 连接到您的 Linux 服务器,而无需输入密码。如果您遇到任何问题,请务必仔细检查您的设置和权限。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

