关键点概述
- 在 Windows 系统上,可以使用命令提示符或 WSL (适用于 Linux 的 Windows 子系统) 来创建 SSH 密钥。Windows 11 内置了 OpenSSH 客户端,操作简便且安全。在 Windows 10 上,可能需要手动启用此可选功能。
- 通过命令提示符或 WSL,运行 “ssh-keygen” 或 “ssh-keygen -t ed25519” 命令,并设置密钥的保存路径以及可选的密码来生成密钥。
SSH (安全外壳) 密钥是用于 SSH 协议的身份验证凭据,能够有效保护文件传输、网络连接,并管理诸如 AWS 等大型云服务。您可以在 Windows 上像设置密码一样生成 SSH 密钥,从而建立加密连接。以下是详细的操作方法。
如何在 Windows 系统上生成 SSH 密钥
安全外壳协议 (SSH) 是增强网络中计算机之间非安全连接安全性的有效途径。 建议避免使用传统的用户名和密码方式进行验证,而采用加密生成的 SSH 密钥。
Windows 11 系统自带 OpenSSH 客户端,无需借助第三方工具即可轻松生成 SSH 密钥。 Windows 10 上的操作流程类似;如果遇到问题,请检查 Windows 的可选功能面板并启用 OpenSSH 客户端选项。
在 Windows 系统中,有两种主要方式可以生成 SSH 密钥:通过命令提示符或使用 WSL(适用于 Linux 的 Windows 子系统)。我们首先介绍第一种方法。
您可能更喜欢使用 Windows 终端,因为它为命令行界面提供了统一的操作环境。 它可以在同一个窗口中运行命令提示符、PowerShell 和适用于 Linux 的 Windows 子系统,提高了使用的便利性,并简化了诸如生成 SSH 密钥之类的任务。
1. 通过命令提示符生成 SSH 密钥
要在 Windows 系统上通过命令提示符生成 SSH 密钥,请按照以下步骤操作:
ssh-keygen

此时,系统将生成您的 SSH 密钥,并显示密钥的指纹和存储路径。 您可以在指定的存储路径下找到生成的密钥对。
除了 RSA 密钥之外,您还可以使用此方法生成 Ed25519 密钥。过程基本一致,只是命令行略有不同。 使用以下命令代替 “ssh-keygen”:
ssh-keygen -t ed25519
后续步骤与生成 RSA 密钥相同。 您需要输入密钥存储路径并设置密码(如果需要),系统会生成包含指纹和存储路径的密钥。
您获得的密钥指纹是 SSH 密钥的唯一标识符。 在连接远程服务器时,可以使用密钥指纹来验证服务器的真实性。 生成 SSH 密钥时,会产生两个密钥:私钥和公钥。 可以通过文件扩展名来区分这两个密钥。 私钥通常没有扩展名,而公钥的扩展名是 .pub。
私钥用于加密和解密数据,应该妥善保管。公钥则只用于加密,可以安全地与他人共享,而不会泄露私钥的秘密。
2. 使用 WSL 生成 SSH 密钥
第二种生成 SSH 密钥的方式是通过适用于 Linux 的 Windows 子系统(WSL)。 既然 Windows 命令提示符已经可以完成这项工作,那么为何还要选择 WSL 呢?
WSL 在 Windows 中提供了一个完整的 Linux 环境,无需安装额外的操作系统即可运行 Linux 命令。 这对于同时使用 Windows 和 Linux 的开发人员和系统管理员来说非常便利。
如果遇到相关问题,可以参考我们关于在 Windows 上启用 WSL 的指南。
首先,请按照以下步骤操作:
ssh-keygen -t rsa -b 4096
ssh-keygen -t ed25519

最终,您将看到一条包含新生成 SSH 密钥的存储路径和指纹的消息。 您可以使用这个密钥来保护您计算机和远程服务器之间的连接。
RSA 和 Ed25519 密钥之间的区别是什么?
在上述步骤中,我们提到了两种 SSH 密钥类型:RSA 和 Ed25519。 它们的主要区别是什么?
最终,您可以根据您的系统需求选择使用任何一种加密算法。 使用 Windows 系统提供的方法生成 SSH 密钥非常简单,考虑到访问远程系统时可能存在的安全风险,这是一个值得采取的安全措施。