如何在Windows中手动生成SSH密钥?

  • 回答 (6)
  • 关注 (0)
  • 查看 (7121)

在Windows上,您可以通过多种方式创建SSH密钥。Windows需要SSH客户端,但在其操作系统上没有默认的SSH客户端。请注意,Windows目前正在测试本机OpenSSH应用程序,一般,不提倡在生产环境中使用beta应用程序。

那如何使用两个SSH应用程序PuTTYGit Bash呢?

以往V以往V提问于
程序猿闯子回答于

1。概论

SSH(安全shell)通常用于访问远程Linux系统。但其身份验证机制(私有本地密钥公共远程密钥配对)用于保护各种在线服务,从GitHubLaunchpad到运行在Microsoft Azure云上 Linux 。

从Linux生成这些密钥非常简单,并且由于Windows上的Ubuntu,您可以在Windows 10中执行相同的过程。但即使没有Ubuntu,也可以使用免费的开源Windows应用程序生成SSH密钥,PuTTy

通过以下几个步骤,我们将指导您使用WindowsPuTTY 上的Ubuntu生成SSH密钥的过程。

要求

您只需要一台运行Windows 10且安装了以下任一项的PC:

如果您还没有Windows上的Ubuntu,请查看我们在Windows 10上安装Ubuntu教程。

2。密码短语考虑因素

创建SSH密钥对时,如以下步骤所示,您可以选择使用密码锁定私钥或根本不使用密码。

无论何时使用密钥对,添加密码短语都需要输入相同的密码短语。不添加密码短语会删除此要求。因此,创建没有密码的密钥对更方便,对于某些脚本和自动化任务可能是必不可少的。但它也不太安全。

如果第三方在没有密码短语的情况下获得对私钥的访问权限,则他们将能够使用公钥访问所有连接和服务。

方便性和安全性之间的良好折衷是为您要使用的每个服务或连接生成单独的密钥对,仅为关键服务添加密码。如果您怀疑密钥已被泄露,只需为该服务生成一对新密钥并删除不太安全的密钥。

3。使用Ubuntu生成密钥

从开始菜单在Windows上的Ubuntu上启动Bash,并通过在命令提示符处输入以下命令来确保安装了SSH:

sudo apt install ssh

密钥生成过程与本机Linux或Ubuntu安装上的过程相同。安装SSH后,键入以下命令运行SSH密钥生成器:

ssh-keygen -t rsa

你会被问到两个问题。第一个询问保存密钥的位置,您可以按return接受默认值。第二个问题要求密码短语。如上所述,输入密码短语将要求您在访问密钥时使用相同的密码短语。

但是,密码短语不是必需的,按回车键(两次)将生成一个没有密码对的密钥对。因此,使用密钥时不会要求您输入密码。

完成此过程后,可以~/.ssh在Ubuntu终端可访问的目录中找到私钥和公钥,或者从Windows文件管理器中找到以下文件夹:

C:\Users\<Windows username>\AppData\Local\lxss\home\<Ubuntu username>\.ssh

无论是应用程序数据lxss目录从默认视图中隐藏的,需要手动输入。

4。使用PuTTY生成密钥

要使用PuTTY密钥生成器生成密钥对,只需运行puttygen.exe并单击出现的窗口中的Generate按钮。

您将被要求移动鼠标并按下键以改善SSH安全性核心的随机数生成。在此之后,公钥的原始内容将与其指纹和时间戳注释一起显示。

两个重要字段,密钥密码确认密码,允许您输入密码来保护私钥。

最后,您需要分别导出私钥和公钥:

  • 要导出私钥,请从“ 转换”菜单中选择“ 导出OpenSSH”键
  • 要导出公钥,请单击主窗口中的“ 保存公钥

公钥通常使用.pub后缀。按照惯例,通常调用私钥id_rsa和公钥id_rsa.pub,但这不是必需的。例如,通常有许多键具有更具描述性的文件名。

kilybekb产品狗回答于

在Windows中生成公钥有三种主要方法。我们已经尝试过使用Windows 7,但鉴于  PuTTY工具 最受欢迎,它们首先被记录下来。无论您选择哪种方法,都可以将生成的密钥通过电子邮件发送给指定的经理,他们会在您的帐户创建后通知您。请注意,如果您有多台计算机,因为您有多台计算机,或者您可能有不同的密钥用于不同的软件,请将它们全部发送给我们 - 我们可以根据您想要绑定到您的Code Enigma帐户的密钥设置您。

PuTTY

这是一个适用于Windows的免费开源软件(FOSS)解决方案,允许Windows用户生成SSH密钥并使用它们通过SSH连接访问Linux服务器。

[1]从此页面下载并运行PuTTY“Installer”:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html上

[2]生成私钥和公钥对:

  • 转到Windows开始菜单 - >所有程序 - > PuTTY并打开PuTTYgen
  • 单击“生成”按钮,PuTTYgen将要求您使用鼠标进行随机移动,直到它有足够的随机数据为您生成安全密钥
  • 单击“保存私钥”按钮,将生成的文件保存在安全的地方,只有您可以访问!

[3]导出Linux服务器的公钥:

在顶部的灰色框中,标题为“粘贴到OpenSSH authorized_keys文件的公钥”,将会有一串废话。根据此页面上的打开说明,将所有此字符串复制到电子邮件中并发送给我们。

就是这样,你做完了!

Git Bash

这是一个轻量级的终端客户端,用于在Windows上从命令行使用Git。它是CygWin的一种缩小版本,其中一个好处是它允许正常的“终端”访问Linux服务器。

[1]从此页面下载并运行最新版本:

https://git-for-windows.github.io/

安装程序将在完成时打开msysGit,按照说明创建快捷方式:

/share/msysGit/add-shortcut.tcl桌面

[2]生成私钥和公钥对:

按照此处的GitHub说明的步骤1和2进行操作:

https://help.github.com/articles/generating-ssh-keys#platform-windows

在步骤3中,按照说明使用“剪辑”命令,但将结果粘贴到电子邮件中并发送。

Bitvise

如果以上都不起作用,那么也有Bitvise,它不是FOSS,但是可以免费供个人使用,甚至可以在组织内单独使用,所以这是一个很好的合法选择。

[1]下载Bitvise SSH客户端软件:

http://www.bitvise.com/download-area

[2]生成私钥和公钥对:

  • 单击“登录”选项卡中标题为“用户密钥管理器”的链接;
  • 单击按钮[生成新...];
  • 选择ssh-rsa和1024bits;
  • 您可以输入密码或将其留空
  • 单击按钮[生成]

此密码短语不会发送到远程主机,它仅用于保护您的私钥。否则,有权访问您私钥的任何人都可以自动向您的帐户进行身份验证。

[3]导出Linux服务器的公钥:

  • 转到“用户密钥对管理器”;
  • 单击插槽中的密钥对;
  • 点击按钮[导出];
  • 选择“导出公钥”和“OpenSSH格式”;
  • 点击按钮[导出];

结果应该类似于:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAo8q0r4d599buYHCbc36ViJniRuLvUr ++ asdSUh
磁化思考奇怪的问题回答于

window环境下需要ssh client, 较好的选择是PuTTY 和Git Bash。使用这两者手动生成ssh key 也比较方便。

1.PuTTYgen

(1)下载PuTTYgen.exe,用于生成ssh key。

2.Git

官网( https://git-scm.com/ )下载git。

在YOUR_GIT_DIR/usr下可以找到ssh-keygen.exe

黄易音乐战组程序员回答于

您也可以使用终端应用程序通过macOS生成SSH密钥。上传有效的公共SSH密钥后,Triton计算服务使用SmartLogin将公钥复制到您配置的任何新SmartMachine。

关于终端

终端是终端仿真器,它为macOS的Unix shell提供基于文本的命令行界面。

要打开macOS终端,请按照下列步骤操作:

  1. 在Finder中,从Applications文件夹中选择Utilities
  2. 在Utilities listw中找到Terminal
  3. 开放式终端。

将打开“终端”窗口,其中显示计算机名称和用户名。

生成SSH密钥

SSH密钥由一对文件组成。一个是私钥,永远不应该与任何人共享。另一个是公钥。另一个文件是一个公钥,允许您登录到您提供的容器和VM。生成密钥时,您将使用ssh-keygen密钥存储在安全位置,以便在连接到实例时绕过登录提示。

要在macOS中生成SSH密钥,请按照下列步骤操作:

  1. 在“终端”窗口中输入以下命令。 ssh-keygen -t rsa 这开始了密钥生成过程。执行此命令时,该ssh-keygen实用程序会提示您指示存储密钥的位置。
  2. 按ENTER键接受默认位置。该ssh-keygen实用程序会提示您输入密码。
  3. 输入密码。您也可以按ENTER键接受默认值(无密码)。但是,不建议这样做。

您需要再次输入密码才能继续。

确认密码后,系统会生成密钥对。

Your identification has been saved in /Users/myname/.ssh/id_rsa.
Your public key has been saved in /Users/myname/.ssh/id_rsa.pub.
The key fingerprint is:
ae:89:72:0b:85:da:5a:f4:7c:1f:c2:43:fd:c6:44:38 myname@mymac.local
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|         .       |
|        E .      |
|   .   . o       |
|  o . . S .      |
| + + o . +       |
|. + o = o +      |
| o...o * o       |
|.  oo.o .        |
+-----------------+

您的私钥将保存到目录中的id_rsa文件中,.ssh用于验证您使用的公钥是否属于同一个Triton Compute Service帐户。

切勿与任何人分享您的私钥!

您的公钥将保存到id_rsa.pub;文件中,并且是您上传到Triton Compute Service帐户的密钥。您可以通过运行以下命令将此密钥保存到剪贴板:

pbcopy < ~/.ssh/id_rsa.pub

导入SSH密钥

现在,您必须将复制的SSH密钥导入门户。

  1. 将SSH密钥复制到剪贴板后,返回到您的帐户页面
  2. 选择“ 导入公钥”并将SSH密钥粘贴到“公钥”字段中。
  3. 在“ 密钥名称”字段中,提供密钥的名称注意:虽然提供密钥名称是可选的,但最好是轻松管理多个SSH密钥。
  4. 添加密钥。它现在将出现在SSH下的密钥表中。

故障排除

您可能会看到如下密码提示:

$ ssh root@198.51.100.27
root@198.51.100.27's password:

这是因为:

  • 您没有输入正确的密码。
  • Macintosh(id_rsa)上的私钥与存储在Triton Compute Service帐户中的公钥不匹配。
  • 您的Triton帐户中未正确输入公钥。
美空鸡多西电回答于

PuTTY

PuTTY是Windows的SSH客户端。您可以使用PuTTY生成SSH密钥。PuTTY是一个免费的开源终端模拟器,其功能与Windows环境中macOS中的终端应用程序非常相似。本节介绍在Windows环境中使用PuTTY时如何手动生成和上载SSH密钥。

关于PuTTY

PuTTY是Windows的SSH客户端,您将用它来生成SSH密钥。您可以从www.chiark.greenend.org.uk下载PuTTY 。

安装PuTTY客户端时,还要安装PuTTYgen实用程序。PuTTYgen是用于为Windows VM生成SSH密钥的方法。

生成SSH密钥

要使用PuTTYgen生成SSH密钥,请按照下列步骤操作:

  1. 打开PuTTYgen程序。
  2. 对于要生成的密钥类型,请选择SSH-2 RSA
  3. 单击“ 生成”按钮。
  4. 将鼠标移动到进度条下方的区域。当进度条已满时,PuTTYgen会生成您的密钥对。
  5. 密钥密码字段中键入密码。在“ 确认密码”字段中键入相同的密码。您可以使用没有密码的密钥,但不建议这样做。
  6. 单击“ 保存私钥”按钮以保存私钥。

必须保存私钥。您需要它才能连接到您的机器。

  1. 右键单击标记为公钥的文本字段以粘贴到OpenSSH authorized_keys文件中,然后选择全选
  2. 在同一文本字段中再次右键单击,然后选择“ 复制”

导入SSH密钥

现在,您必须将复制的SSH密钥导入门户。

  1. 将SSH密钥复制到剪贴板后,返回到您的帐户页面
  2. 选择“ 导入公钥”并将SSH密钥粘贴到“公钥”字段中。
  3. 在“ 密钥名称”字段中,提供密钥的名称注意:虽然提供密钥名称是可选的,但最好是轻松管理多个SSH密钥。
  4. 添加密钥。它现在将出现在SSH下的密钥表中。

PuTTY和OpenSSH使用不同格式的公共SSH密钥。如果您在SSH密钥中粘贴的文本开头—— BEGIN SSH2 PUBLIC KEY,则格式错误。请务必仔细按照说明进行操作。你的钥匙应该从一开始ssh-rsa AAAA…

将SSH密钥上传到门户后,可以通过PuTTY会话从Windows连接到虚拟机

Git Bash

Git的安装包自带的SSH。使用Git Bash(Git命令行工具),您可以生成SSH密钥对。Git Bash有一个SSH客户端,使您可以连接到Windows上的Triton容器并与之交互。

要安装Git:

  1. (下载并启动Git安装程序)(https://git-scm.com/download/win)。
  2. 出现提示时,单击“ 下一步”接受默认组件。
  3. 选择默认文本编辑器。如果安装了Notepad ++,请选择Notepad ++并单击Next
  4. 从Windows命令提示符中选择“ 使用Git”,然后单击“ 下一步”
  5. 选择“ 使用OpenSSL库”,然后单击“ 下一步”
  6. 选择Checkout Windows样式,提交Unix样式的行结尾,然后单击Next
  7. 选择“ 使用MinTTY”(mYSYS2的默认终端),然后单击“ 下一步”
  8. 单击“ 安装”接受默认的额外选项配置。

安装完成后,您可能需要重新启动Windows。

启动GitBash

要打开Git Bash,我们建议从Windows命令提示符启动应用程序:

  1. 在Windows中,按Start + R以启动“ 运行”对话框。
  2. 键入C:\Program Files\Git\bin\bash.exe,然后按Enter键

生成SSH密钥

首先,创建SSH目录,然后生成SSH密钥对。

一个假设是您使用的Windows配置文件具有管理权限。鉴于此,您将在配置文件的根目录中创建SSH目录,例如:

C:\Users\joetest
  1. 在Git Bash命令行中,切换到根目录并键入。
mkdir .ssh
  1. 转到.ssh目录 C:\Users\joetest\.ssh
  2. 要创建密钥,请键入:
ssh-keygen.exe
  1. 提示输入密码时,键入apassword以完成该过程。完成后,输出类似于:
Ssh-keygen.exe
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/joetest/.ssh/id_rsa): /c/Users/joetest/.ssh/
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/joetest/.ssh/
Your public key has been saved in /c/Users/joetest/.ssh/
The key fingerprint is:
SHA256:jieniOIn20935n0awtn04n002HqEIOnTIOnevHzaI5nak joetest@periwinkle
The key's randomart image is:

 +---[RSA 2048]----+
 |*= =+.           |
 |O*=.B            |
 |+*o* +           |
 |o +o.  .         |
 | ooo  + S        |
 | .o.ooo* o       |
 |  .+o+*oo .      |
 |   .=+..         |
 |   Eo            |
 +----[SHA256]-----+

$ dir .ssh
id_rsa  id_rsa.pub   

上传SSH密钥

要将公共SSH密钥上传到您的Triton帐户

  1. 打开Triton Service门户,选择Account以打开Account Summary页面。
  2. SSH部分,选择Import Public Key
  3. 输入密钥名称。尽管命名密钥是可选的,但标签是管理多个SSH密钥的最佳实践。
  4. 添加您的公共SSH密钥。

当Triton完成添加或上载过程时,公共SSH密钥将显示在SSH密钥列表中。

athletesss互联网产品经理回答于

ssh-keygen不是Windows可执行文件。

您可以使用PuttyGen来创建密钥

扫码关注云+社区

领取腾讯云代金券