Vultr如何生成 SSH 密钥?

SSH 密钥允许您在没有密码的情况下登录服务器。本指南介绍如何使用 OpenSSH 格式的 Linux、Mac 或 Windows 工作站创建 SSH 密钥,适用于Vultr服务器实例。

使用OpenSSH创建SSH密钥

OpenSSH 是标准配置,应该存在于macOS 和大多数 Linux 发行版上。我们还为 Windows 10 用户则需要额外的安装。按照以下步骤使用 OpenSSH 实用程序创建 SSH 密钥。

生成您的密钥 ,命令行中替换成您的电子邮件地址。ssh-keygen

$ ssh-keygen -t ed25519 -C "your_email@example.com"

> 注意:如果您使用不支持 Ed25519 算法的旧系统,请使用:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

默认情况下,密钥存储在 ~/.ssh 目录中。大多数 SSH 客户端会自动使用以下默认文件名:

算法:ED25519(首选)

  • 公钥:id_ed25519.pub
  • 私钥:id_ed25519

算法:RSA(至少 2048 位密钥大小)

  • 公钥:id_rsa.pub
  • 私钥:id_rsa

算法:DSA(已弃用)

  • 公钥:id_dsa.pub
  • 私钥:id_dsa

算法:ECDSA

  • 公钥:id_ecdsa.pub
  • 私钥:id_ecdsa

按下回车键保存在默认位置。

Generating public/private ed25519 key pair. 
Enter file in which to save the key (/Users/example/.ssh/id_ed25519):

您可以输入密钥的密码。我们建议使用密码,但您可以按下回车以绕过此提示。如果您使用密码,则每次使用该密钥时都会输入该密码,除非您还使用ssh-agent

Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

您的密钥已生成并保存。

Your identification has been saved in /Users/example/.ssh/id_ed25519. Your public key has been saved in /Users/example/.ssh/id_ed25519.pub. 
The key fingerprint is:
 SHA256:qx6prR4Zo+VU7Fl8yivXzzzzzzzzJ/9NRnPbrC20w7g example@example.com The key's randomart image is: 
+--[ED25519 256]--+ 
| | | o . | | o B o + . | | B + + o + | | = = S o o o | | = + = O + + | | . + B B = * . | | = O + o | | .+o=.. E . | 
+----[SHA256]-----+

备份私钥。如果丢失,密钥将无法恢复。

在使用 SSH 密钥连接到现有服务器之前,您需要将公钥添加到文件中。您还可以将公钥添加到您的 Vultr 帐户。

在 Windows 10 上安装 OpenSSH

OpenSSH 客户端是 Windows 10 1809 的可安装组件。

  1. 启动“设置”,然后转到“应用”>“应用和功能>“管理可选功能”。
  2. 扫描此列表以查看是否已安装 OpenSSH 客户端。如果没有,请单击添加功能
  3. 找到 OpenSSH 客户端,然后单击安装
  4. (可选)还可以使用 PowerShell 安装 OpenSSH 客户端

安装 OpenSSH 后,请按照上述说明创建 SSH 密钥。

使用 PuTTYgen 在 Windows 上创建 SSH 密钥

PuTTYgen 是 PuTTY 实用程序套件的一部分。它适用于所有版本的 Windows。

  1. 下载最新版本的 PuTTY 实用程序。建议使用 MSI Windows Installer 程序包。
  2. 安装软件包并运行 PuTTYgen。
  3. 在程序窗口的底部,选择键类型。EdDSA
  4. 在右下角,将“用于生成此键的曲线”设置为 。Ed25519 (255 bits)
  5. 单击Generate ”按钮。然后,在空白区域移动鼠标以生成一些随机数据。
  6. 输入Key comment ,以便以后更易于识别密钥。
  7. 私钥必须安全无虞,防止未经授权的使用。我们建议输入密钥密码来保护 SSH 密钥。
  8. 单击Save private key并安全存储。如果丢失此文件,则无法恢复。此文件是 PuTTY 格式的公钥/私钥对。您将来可以使用 PuTTYgen 重新导入此文件,以导出或转换公钥的格式。
  9. 单击 Conversions > Export OpenSSH key。保存此文件并安全地存储。此文件是 OpenSSH 格式的私有 SSH 密钥。如果您使用 PuTTY 以外的 SSH 客户端,则可能需要此文件。
  10. 选择Public key for pasting into OpenSSH authorized_keys file”框中的文本,并将其保存到文件中。这是 OpenSSH 格式的公钥。如果要将此密钥添加到您的 Vultr 帐户,您还需要将其复制并粘贴到用户面板。

恢复丢失的公钥

如果您有权访问私钥,则可以使用 OpenSSH 恢复公钥。

将选项和带有选项的私钥路径传递给 ssh-keygen。当 ssh-keygen 重新生成公共 SSH 密钥时,您可以将输出重定向到您选择的文件。-y-f

例如,要重新生成公钥并将输出发送到:~/example_key~/example_key.pub

$ ssh-keygen -y -f ~/example_key > ~/example_key.pub

如果为密钥设置了密码,系统将提示您输入密码。

更改密钥的密码

您可以使用该选项更改私钥上的密码,并使用该选项传递密钥名称。-p-f

$ ssh-keygen -p -f ~/example_key

在提示符下输入您的新旧密码(两次)。

查看钥匙的指纹

使用该选项打印密钥的 SHA256 指纹,并使用该选项传递密钥名称。-l-f

$ ssh-keygen -l -f example_key

输出如下所示:

3072 SHA256:pqdEtfbmIRwqTk9PpApa7DMvAxqCA577vJ/FcgyUM0Q root@localhost (RSA).

将密钥传输到服务器

OpenSSH 包含一个实用程序,用于将密钥传输到您的服务器。使用此实用程序时,必须使用 SSH 向服务器进行身份验证。

使用该选项指定要传输的公钥。将该示例替换为您的用户名和服务器的 IP 地址。-i

$ ssh-copy-id -i ~/.ssh/example_key.pub example_user@192.0.2.123

系统将提示您向服务器进行身份验证,并将密钥传输到远程服务器的文件中。authorized_keys

关于 SSH 密钥格式

OpenSSH 6.5 在 2014 年引入了ED25519密钥,它们在大多数操作系统上都可用。据信,ED25519密钥比 RSA 更安全,性能更好。如果使用 RSA 密钥,美国国家科学技术研究院建议密钥大小至少为 2048 位。

分享你的喜爱

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注