如果你的生活的一部分包括登录到远程服务器,无论是为了自托管的博客、Nextcloud安装,还是发送你最新的更改到GitHub,你都需要SSH密钥。在Windows 10和11上,当我们需要生成新密钥时,我们有很多选择。
内容提要
- 使用命令提示符、PowerShell或Windows Terminal,在Windows 10或11上生成SSH密钥,在输入”ssh-keygen”后跟一个密码短语。默认存储位置位于C:\Users文件夹中。
- 您还可以通过其他两种方式快速生成SSH密钥:通过命令行使用Windows子系统Linux(WSL)或使用PuTTY。每种方法都有其自己的步骤和注意事项。
- 为不同的站点创建多个SSH密钥很简单——在生成过程中为每个密钥指定不同的名称。妥善管理和传输这些密钥,以避免丢失对服务器和帐户的访问权限。
以下是使用三种不同的方法创建您所需要的所有SSH密钥的方法。我们将向您展示如何生成您初始密钥集,以及如果您想为多个站点创建不同的密钥,则需要生成额外的密钥。
方法一:在命令行中生成密钥
自2018年4月更新以来,Windows 10已经内置了OpenSSH客户端。Windows 11也内置了此功能。要使用它,请通过按Windows键并键入“cmd”来打开Windows命令提示符。
温馨提示:如果您经常使用命令行,我们强烈建议您从Windows应用商店安装Windows Terminal(默认安装在Windows 11上)。它是一个分页程序,可以在一个窗口中运行命令提示符、PowerShell和适用于Linux的Windows子系统。它还有设置背景图像等有趣的功能。
无论您使用命令提示符还是Windows终端,都键入ssh-keygen并按下Enter键。这将自动生成SSH密钥。在我们在Windows11上的测试中,它创建了一个2048位的RSA密钥。如果您想使用不同的算法,例如,GitHub建议使用Ed25519,则可以键入ssh-keygen -t ed25519。
输入命令后按Enter键,然后系统会提示您为密钥命名并将其保存在特定位置。如果您使用默认设置,假设C驱动器是存储用户帐户的位置,则将把您的密钥保存在C:\User[YourUserName].ssh。
接下来,你将被要求输入一个密码词。我们强烈建议你这么做,以保护你的密钥安全。如果你真的不想要一个密码词,那就直接按下回车键。
这就完成了,您的密钥已经创建、保存并准备好使用。您将看到在“.ssh”文件夹中有两个文件:“id_rsa”(没有文件扩展名)和“id_rsa.pub”。后者是您上传到服务器进行身份验证的密钥,而前者是您不与其他人共享的私钥。
注意: 如果您在文件资源管理器中看不到“.ssh”文件夹,因为在Windows中会默认不显示隐藏的文件和文件夹。
如果您想为不同的网站创建多个密钥,那也很容易。例如,您想为某个云服务器生成默认密钥,并且想为GitHub创建另一组密钥。您可以按照与上面相同的过程进行操作,但是在保存密钥时,只需给它一个不同的名称,例如“id_rsa_github”或类似名称。您可以根据需要重复多次。请记住,您拥有的密钥越多,需要管理的密钥就越多。当您升级到新的PC时,您需要将这些密钥与其他文件一起移动,否则可能会暂时失去对服务器和帐户的访问权限。
方法二:在WSL中生成密钥
如果你是WSL用户,你可以使用类似的方法来使用你的WSL安装。实际上,它与命令提示符版本基本相同。为什么你想这样做呢?如果你主要在Linux上使用命令行工作,那么把你的密钥保留在WSL中是很有意义的。
打开Windows Terminal或内置的Ubuntu命令提示符(假设你已经安装了Ubuntu Linux)。然后操作与Windows非常类似。与Windows不同,最好指定你想要的是RSA密钥还是类似于Ed25519的密钥。
假设你想创建一个RSA-4096密钥,你可以输入以下命令:
ssh-keygen -t rsa -b 4096
如果你想要Ed25519,则推荐的方法如下:
ssh-keygen -t ed25519 -C "[email protected]"
建议添加电子邮件地址作为标识符,尽管在Windows上不必这样做,因为Microsoft的版本自动使用您的用户名和PC的名称。同样,要为不同的网站生成多个密钥,只需在文件名末尾加上“_github”之类的标记。
方法三:使用PuTTY生成密钥
多年来,老式的PuTTY程序是Windows中与服务器通信的一种受欢迎的方式。如果您的系统上已经有这个程序,它还提供了一种创建SSH密钥的方法。
PuTTY附带了一些辅助程序,其中之一称为PuTTY密钥生成器。要打开它,可以通过按下Windows键并输入“puttygen”来搜索,或在开始菜单中搜索。“
打开程序后,在窗口的底部,你会看到要生成的各种类型的密钥。如果你不确定该使用哪种密钥,请选择“RSA”,然后在“生成密钥的位数”的输入框中输入“4096”。另一个选择是选择“EdDSA”,然后在出现的下拉菜单中确保选择了“Ed25519(255位)”。
现在,你只需要点击“生成”按钮,PuTTY就会开始工作。这可能不会花太多时间,取决于你的系统强度,PuTTY会要求你在窗口内移动鼠标,以帮助在密钥生成过程中增加一些随机性。
完成之后,点击“保存公钥”按钮,将你的公钥保存到你希望的位置,并将其命名为“id_rsa.pub”或“id_ed25519.pub”,取决于你之前选择的是RSA还是Ed25519。
然后,要获得您的私钥,需要额外的步骤。默认情况下,PuTTY生成用于PuTTY客户端的PPK密钥。但是,如果您想使用OpenSSH,您可以在窗口顶部选择“转换”>“导出OpenSSH密钥”,然后将文件保存为“id_rsa”或“id_ed25519”,且没有文件扩展名。
无论你选择哪种方法,生成SSH密钥非常简单。我们推荐你使用Windows命令提示符选项,除非您已经安装了PuTTY,或者喜欢Linux并了解该系统。

文章评论