在 Windows 上生成 SSH 密钥的 3 种方法

已发表: 2023-11-19

如果您通过云计算进行工作,访问不在当前网络或家庭网络上的远程服务器,您可能已经熟悉 SSH 或安全 Shell 密钥。 由于 SSH 密钥比传统的用户名和密码组合安全许多倍,因此它们通常用于访问依赖远程服务器的工作站。 SSH 密钥为员工或他们授权登录服务器的其他人提供简单、安全的访问。

generate ssh keys on windows

SSH 密钥的另一个优点是创建速度快,只需几分钟即可完成,无需复杂的程序。 所有这些都可以通过一台简单的 Windows 计算机来完成,这正是我们将在本文中介绍的内容。 我们走吧!

目录

什么是 SSH 注册机?

SSH 密钥生成器可以被认为是传统用户名和密码访问的更复杂、更安全的版本。 SSH 密钥是使用不同算法为每个用户单独生成的,并且高度随机化以确保数据保护。

SSH 密钥生成通常用于安全访问云服务器。 然而,它们也可以用于其他工作场所,以授予用户和员工访问权限,例如数据中心、公司等。 可以使用下面描述的三种方法在 Windows 计算机上执行注册机创建。

SSH 注册机如何运作?

在学习如何创建 SSH 密钥之前,简要了解它们的工作原理非常重要。 生成 SSH 密钥时,您基本上会创建一对密钥——公共密钥对和私有密钥对。 顾名思义,私钥不应与他人共享。

另一方面,公钥位于另一方(无论是您的雇主还是您的公司)的服务器上。 这样,公钥和私钥就可以在访问计算机和中央服务器之间建立连接并相互通信。 如果锁和钥匙匹配,您将被授予访问权限。

使用命令提示符生成 SSH 密钥

Windows 命令提示符是执行此类操作的最佳方式,因为它默认内置于系统中。 创建 SSH 密钥最多需要几个步骤,并且不需要任何其他工具。

Windows 11 默认附带 Windows 终端,但如果您使用的是旧版本,我们建议您从 Microsoft Store 下载。 它可以运行命令提示符、Windows PowerShell 和适用于 Linux 的 Windows 子系统,同时提供更干净、更用户友好的界面。

  1. Windows 键并搜索Terminal 。 要继续使用本机命令提示符,请搜索cmd
    open windows terminal
  2. 输入ssh-keygen并按Enter
    type ssh keygen
  3. 系统将提示您输入选择的保存路径和要保存的文件的名称。 您可以跳过第一点并将密钥保存到电脑的默认位置,通常是 C 驱动器。 不用担心; 文件的位置将显示在其旁边。
    enter location pathway
  4. 系统将提示您输入密码以获得额外保护。 同样,您无法使用密码保护密钥,但我们强烈建议您不要这样做。 然后按Enter键。
    enter passphrase
  5. 再次输入密码进行确认。
    enter passphrase again to confirm it
  6. 将出现一条确认消息,表明您的密钥已生成并保存在指定位置。
    the generated ssh keys

默认情况下,Windows 11 生成遵循 2048 位 RSA 算法的密钥。 但是,如果您需要基于不同算法的 SSH 密钥,请在第二步中的第一个命令后面添加-t(算法名称) 。 例如,GitHub 建议使用 ed25519 算法,因此您必须键入ssh-keygen -t ed25519来生成相应的密钥。

ed25519 algorithm

此外,指定位置中保存的不仅仅是一个文件,而是两个文件 - 一个不带扩展名,另一个带扩展名 .pub。 顾名思义,带有.pub扩展名的文件是公钥,而没有扩展名的文件是生成的 SSH 密钥的私钥。 当然,您不能与他人共享私钥。

pair of ssh keys generated

使用 WSL 生成 SSH 密钥

如果您喜欢采用 Linux 方式,那么适用于 Linux 的 Windows 子系统非常适合您。 尽管该过程或多或少相似,但建议精通 Linux 领域的人使用。 如果没有,您应该坚持第一种方法。

作为先决条件,您的 Windows 10 PC 上需要安装适用于 Linux 的 Windows 子系统 (WSL),您可以从 Microsoft Store 下载该程序。 Windows 11 用户不需要下载 WSL 工具,因为内置的 Windows 终端得到了很好的支持,可以在应用程序中运行 WSL 命令。 如上所述,如果您使用的是旧版本的 Windows,则可以从 Microsoft Store 下载 Windows Terminal。

  1. 打开Windows 终端。 或者,您也可以在 WSL 中打开命令提示符窗口
    open windows terminal
  2. 与第一种方法不同,您必须说明要生成的密钥的算法。 例如,要生成 RSA-4096 密钥,请输入ssh-keygen -t rsa -b 4096 “[email protected]并按Enter 。 输入您的电子邮件地址对于轻松识别至关重要。 如果您使用 Windows 终端生成密钥,则可以跳过它,因为 Windows 会自动捕获您的电脑名称和用户名。
    enter wsl command
  3. 输入要保存的文件位置,并根据需要提供密码。 您可以通过按Enter键选择坚持默认值。
    enter passphrase
  4. 再次输入密码并按Enter键以确认您的密码。
    confirm your passphrase

使用 PuTTY 生成 SSH 密钥

多年来,PuTTY 一​​直是在服务器和计算机之间建立通信的最佳解决方案。 尽管 SSH 客户端仍在使用,但已不再那么普遍。 尽管如此,PuTTY 仍然是一个功能强大的 SSH 密钥生成器,因此,如果上述方法由于某种原因使您失败,您可以尝试一下。 在继续之前,请下载并设置适用于 Windows 的 PuTTY 客户端。 PuTTY 也可以从 Microsoft Store 下载。

  1. Windows 键并搜索PuTTYgen打开它。
    open puttygen client
  2. 您必须选择要生成的 SSH 密钥的类型。 选择所需的密钥类型并在“参数”部分下输入位值。 例如,选择“RSA”并输入“4096”即可创建RSA-4096类型的密钥。 EdDSA类型可以使用旁边的下拉菜单进一步配置,以合并Ed25519类型的255 位和表单密钥。
    enter ssh key parameters
  3. 选择生成
    generate ssh keys
  4. PuTTY 生成器会提示您将光标随机移动到空白区域,以增加按键的随机性,从而增强其强度。
    create randomness by moving cursor
  5. 生成密钥后,您可以指定密码。 在以下输入字段中再次输入密码以确认密码。
    set a passphrase
  6. 单击“保存公钥”将公钥保存在您选择的位置。 文件名末尾应带有扩展名.pub
    save public key
  7. 单击“保存私钥”保存私钥。 如果您不设置密码,您会遇到警告; 选择“是”继续进行。
    save private key

请注意,默认私钥仅适用于 PuTTY 的专有客户端。 如果您的工作站不支持 PuTTY 客户端,则最好以OpenSSH格式导出以确保通用兼容性。 为此,请在最后一步中选择“转换” ,然后单击“导出 OpenSSH 密钥”

如何生成多个密钥?

如果您需要多个 SSH 密钥来登录不同的服务器,您可以轻松生成多个密钥。 为此,您可以重复上述任何过程并创建更多 SSH 密钥,但不要忘记相应地标记文件名或将它们保存在唯一的名称下以避免混淆。 为了避免忘记密钥的密码,请查看最佳免费密码管理器来保存生成的密钥的密码。

请记住,当您切换到新电脑时,必须手动转移密钥。 否则,您将无法访问您的服务器和位置。 您始终可以在新电脑上生成新密钥,但如果您已经拥有大量密钥库,则这会很乏味。

轻松生成 SSH 密钥

就是这样,伙计们! 生成 SSH 密钥的过程很简单,并且借助 Windows Terminal 等官方集成平台,您甚至不需要下载单独的应用程序或软件。 WSL 和 PuTTY 等其他平台同样易于使用且高效。 不要忘记密钥的密码,并确保您的密钥安全,不要与他人共享。

SSH 注册机常见问题及解答

1.什么是 SSH 注册机?

SSH keygen 是传统用户名和密码组合的现代替代品。 从技术上讲,SSH 密钥是生成、匹配并用于访问远程云平台、站点和服务器的虚拟密钥。 它由两个密钥组成 - 一个公共密钥和一个私有密钥,第一个密钥驻留在服务器上,而第二个密钥在正确匹配时授予访问权限。

2. 我必须提供密码吗?

不需要,默认情况下创建 SSH 密钥不需要密码。 但是,由于 SSH 密钥非常敏感并且很容易被滥用,因此您应该确保它们安全存储。 请记住:您创建的 SSH 密钥越多,您需要记住的每个密钥的密码就越多。

3. 为什么一个 SSH 密钥会生成两个文件?

每个 SSH 密钥都由一对相关文件组成。 一个具有扩展名 .pub,另一个没有扩展名。 公钥就像一把锁,被传输到您想要登录的中央服务器,而私钥则用作访问所需页面的文字密钥。

4. 如果我习惯Linux,如何生成SSH密钥?

适用于 Linux 的 Windows 子系统(简称 WSL)支持本地生成 SSH 密钥。 此外,支持WSL命令的Windows终端也可用于创建Linux风格的密钥。 您可能需要计划一些额外的步骤,但您将获得精细控制和熟悉 Linux 的额外好处。

5. 如果我要升级到新电脑,如何转移 SSH 密钥?

如果您要升级到新电脑并想要转移 SSH 密钥,那么只有一种方法:您必须手动将它们转移到新电脑。 如果您忘记执行此操作,生成的密钥将被完全删除。 如果您没有包含许多 SSH 密钥的广泛库,您可以随时在新 PC 上创建新密钥。

6. 之后如何找到 SSH 密钥?

无论是 Windows 终端还是 WSL,您都会看到您创建的 SSH 密钥的确切位置。 如果不检查就退出程序,则需要在 Windows 终端中输入一些命令。 输入~/.ssh/id_rsa~/.ssh/id_rsa.pub以搜索 SSH 私钥和公钥(如果有)。