如何将SSH公钥上传到现有的VPS
AlexHost 使用 SSH 密钥是处理身份验证的最安全和高效的方法之一。如果您有一个现有的 VPS 并希望切换到使用 SSH 密钥(或添加新密钥),这是一个简单的过程,通过允许无密码登录来提高安全性。在本指南中,我们将引导您如何将 SSH 公钥上传到现有的 VPS,确保未来的登录既安全又简单。
为什么使用 SSH 密钥?
SSH 密钥被广泛用于保护对远程服务器的访问。它们相对于传统密码提供了几个优势:
- 更强的安全性:SSH 密钥使用加密身份验证,这比强密码更难破解。
- 无密码登录:一旦设置,SSH 密钥允许您在不输入密码的情况下登录到服务器。
- 防止暴力破解攻击:通过消除密码,SSH 密钥可以防止针对猜测登录凭据的暴力破解攻击。
前提条件
在您开始之前,您需要:
- 访问您现有的 VPS:这意味着您可以使用 SSH 登录到 VPS,可能是使用密码。
- 一对 SSH 密钥:如果您没有,我们将介绍如何生成它。
- 基本的 SSH 命令知识:需要熟悉命令行界面(CLI)。
步骤 1:生成 SSH 密钥对(如果您没有)
如果您在本地计算机上还没有 SSH 密钥对,可以创建一个。方法如下:
在您的本地计算机(macOS 或 Linux)上打开终端并运行以下命令:
此命令将创建一个 4096 位的 RSA 加密密钥对。在此过程中,系统会询问您将密钥保存到何处:
- 按 Enter 将密钥保存到默认位置(~/.ssh/id_rsa)。
- 可选地,为额外的安全性添加一个密码短语(推荐),或按 Enter 跳过此步骤。
此过程生成两个文件:
- id_rsa:您的私钥(请妥善保管,切勿分享)。
- id_rsa.pub:您的公钥(这是您将上传到服务器的内容)。
接下来,显示公钥以便您可以复制它:
ssh root@your_vps_ip复制输出(您的公钥),因为您将在下一步中需要它。
步骤 2:登录到您的 VPS
要将新的 SSH 公钥添加到虚拟机,您需要使用当前的方法(无论是使用密码还是现有密钥)登录。打开终端并运行:
将 your_vps_ip 替换为您的 VPS 的实际 IP 地址。如果您使用不同的用户帐户登录(不是 root),请将 root 替换为相应的用户名。
步骤 3:创建 .ssh 目录(如果不存在)
登录后,确保您使用的用户帐户存在 .ssh 目录。如果不存在,请使用以下命令创建它:
此命令创建 .ssh 目录并设置正确的权限,以便只有当前用户可以访问它。
步骤 4:将公钥添加到 authorized_keys 文件
现在您已经有了 .ssh 目录,您需要通过将 SSH 公钥添加到 authorized_keys 文件来将其上传到 VPS。此文件包含允许对服务器进行身份验证的公钥。
- 使用文本编辑器(如 nano)打开 authorized_keys 文件:
如果文件不存在,此命令将创建它。
- 将您的公 SSH 密钥(您之前从 id_rsa.pub 复制的那个)粘贴到文件中。右键单击或使用终端的粘贴功能插入密钥。
- 通过按 Ctrl + X,然后 Y,最后按 Enter 保存并关闭文件。
- 为 authorized_keys 文件设置正确的权限:
此步骤确保文件仅对当前用户可访问。
步骤 5:测试 SSH 密钥登录
在将 SSH 密钥添加到 VPS 后,您应该测试设置,以确保您可以无密码登录。
- 通过输入以下内容退出当前的 SSH 会话:
- 现在,尝试使用您的 SSH 密钥重新登录到 VPS:
如果一切设置正确
- ,您将无需输入密码即可登录到 VPS。
步骤 6(可选):禁用密码身份验证
为了额外的安全性,您可以禁用基于密码的身份验证,仅允许拥有 SSH 密钥的用户访问 VPS。此步骤是可选的,但建议在安全性优先的环境中进行。
要禁用密码身份验证:
- 在您的 VPS 上打开 SSH 配置文件:
- 在配置文件中找到以下行,并确保它们设置如下:
- 通过按 Ctrl + X,然后 Y,最后按 Enter 保存并关闭文件。
- 重启 SSH 服务以应用更改:
现在,只有拥有有效 SSH 密钥的用户才能登录到 VPS。
步骤 7:管理多个 SSH 密钥
如果您管理多个 VPS 或远程服务器,您可能希望组织您的 SSH 密钥并配置您的 ~/.ssh/config 文件以方便使用。以下是一个示例配置,允许您为不同的服务器指定不同的 SSH 密钥:
在将此内容添加到您的 SSH 配置文件(~/.ssh/config)后,您可以简单地登录:
结论
将 SSH 公钥添加到现有 VPS 显著增强了您的远程服务器的安全性,同时简化了登录过程。通过遵循本指南,您可以轻松上传您的 SSH 公钥并配置您的 VPS 以实现无密码登录。为了增强安全性,考虑完全禁用密码身份验证,确保只有授权的 SSH 密钥可以访问您的 VPS。此设置不仅保护您的服务器免受未经授权的访问,还通过消除每次登录时输入密码的需要来简化您的工作流程。

