介绍
为了从本地计算机安全地访问您的 Hetzner 实例,建议使用 SSH 密钥。在本教程中,我将指导您如何在新的 Hetzner 实例上使用 SSH 密钥设置安全登录。.
密码通常都很弱。如果提高密码强度,就很难记住,使用密码管理器就不可避免了。SSH 密钥的长度也很重要,最长可达 4096 位。您还可以使用不同的算法,例如基于 ed25519 标准的椭圆曲线密码学 (ECC),本教程也将使用该标准。.
先决条件
- Hetzner 云账户
- 创建 Hetzner 项目和 Hetzner 实例的权限
- 本地计算机上已安装 ssh-keygen、cat 和 nano 工具。
步骤 1 – 创建本地 SSH 密钥
您需要在本地计算机上创建一个 SSH 密钥。建议在密钥末尾添加注释,以便将来识别该 SSH 密钥。提供一些关于计算机本身的信息也可能有所帮助。例如:
SSH密钥 - MacbookPro 13英寸 - [email protected]
ssh-keygen -t ed25519 -C "some comment here"
接下来,系统会要求您输入 SSH 密钥文件的名称和位置。如果您想保留默认名称 (ed25519) 和位置 (/home/user/.ssh/),只需按回车键即可。如果您想为文件命名以便区分不同服务器的多个密钥,可以输入 /home/user/.ssh/server01,其中将 user 替换为您的用户名。.
接下来,您需要设置密码以增强服务器的安全性。YouTube 和整个互联网上有许多教程,但它们要么省略了设置密码的步骤,要么没有建议添加密码短语。我们强烈建议您设置密码短语来创建一个安全的实例。此密码短语可以保护私钥,即使有人可以访问您的计算机,也无法访问服务器。您可以将 SSH 客户端配置为与 keypass 通信,这样就无需每次都输入密码,但请注意,keypass 通常始终处于启用状态,因此直接访问您已登录的会话并不能阻止此时对服务器的未经授权的访问。但是,这可以防止任何人复制该文件并在其他计算机上使用它。默认情况下,此命令会创建一个名为 id_ed25519.pub 的公钥和一个名为 id_ed25519 的私钥,它们存储在 ~/.ssh/ 目录中。 id_ed25519.pub 文件是服务器验证用户身份所需的公钥,而 id_ed25519 文件是您的私钥,除了您之外任何人都不应该访问它,尤其是在您跳过设置密码短语的步骤的情况下。.
步骤 2 – 将 SSH 密钥添加到您的 Hetzner 云控制台
在此需要明确说明的是,Hetzner 项目之间不共享 SSH 密钥。这意味着您需要为每个新项目重复此步骤,可以使用相同的密钥,也可以使用不同的密钥。.
- 选择一个项目或创建一个新项目。
- 在项目的左侧菜单中,选择“安全”菜单项。
- 点击“添加SSH密钥”按钮。
- 在本地计算机上,运行命令 cat /home/user/.ssh/id_ed25519.pub 查看文件内容或在编辑器中打开它。.
- 选择“输出”,然后按 ctrl+shift+c,将本地设备上的 id_ed25519.pubfile 文件内容复制到剪贴板。.
- 请将 SSH 密钥粘贴到 Hetzner 帐户的指定字段中。
- 为 SSH 密钥添加一个名称,以便在 Hetzner 云控制台中识别它,或者保留根据密钥名称自动生成的名称。.
- 就这样。每次为该项目创建新实例时,都可以使用此 SSH 密钥。
步骤 3 – 使用在云控制台中添加的 SSH 密钥创建 Hetzner 实例
- 在上一步添加了 SSH 密钥的项目左侧菜单中,选择“服务器”菜单项。
- 点击“添加服务器”按钮。
- 选择位置、操作系统、类型和其他所需设置。
- 在“SSH密钥”部分,请确保点击您在上一步中添加的建议SSH密钥。“密钥”字段应处于高亮显示状态。
- 点击“创建并购买”即可创建样品。
步骤 4 – 使用本地计算机上的 SSH 密钥测试登录
- 复制 Hetzner 实例的 IP 地址
- 首先登录到您的本地计算机。将 xxx.xxx.xxx.xxx 替换为您创建的 Hetzner 实例的 IP 地址。.
- 输入 yes 将指纹添加到 known_hosts 文件中。
- 输入您为 SSH 密钥设置的密码。
- 就这样。如果您看到 Ubuntu Hetzner 的欢迎信息示例,则表示该过程已成功。
步骤 5 – 将 SSH 密钥添加到先前创建的服务器
如果您在添加 SSH 密钥之前创建了服务器,则无法通过云控制台将其分配给您的服务器。.
最好先在新服务器上进行此操作,以免影响生产环境的 SSH 连接。由于此操作只需几分钟,您可以快速启动并运行服务器,而且最多只需花费几美分。因此,请创建一个没有 SSH 密钥的新服务器,然后按照以下步骤操作。.
使用以下命令查看您的公钥文件内容:
cat /home/user/.ssh/id_ed25519.pub
使用 Ctrl+Shift+C 选择输出
使用以下命令登录您的服务器:
ssh root@server_ip
写入服务器密钥:
- 以 root 用户身份:
echo "keyfile_content" >> /root/.ssh/authorized_keys
- 和其他用户一样:
echo "keyfile_content" >> /home/user/.ssh/authorized_keys
将 keyfile_content 替换为您刚刚复制的 id_ed25519.pub 的内容。将 user 替换为用户名。
nano /etc/ssh/sshd_config
如果已安装,您可以将 nano 替换为您喜欢的编辑器。.
如果要禁用密码登录,请找到包含 PermitRootLogin 的行,并将其更改为:
PermitRootLogin prohibit-password
这样可以禁用不安全的密码,只接受您的 SSH 密钥。
要重新加载 SSH 服务以激活新设置,请运行:
systemctl restart sshd
退出 SSH 会话,然后尝试不使用密码访问。如果您已设置密码短语来保护本地私钥,则仍然需要输入该密码短语。.
如果您仔细按照这些步骤操作,并且一切都按计划进行,那么您现在可以继续使用生产服务器并再次删除测试服务器。.
结果
您现在可以安全地登录您的 Hetzner 实例。.









