在 Windows10/11中生成新的 ssh 密钥

在安装 Windows10之后,我很难让 SSH 密钥启动并运行。通常的方法是创建它,然后在 .ssh下将它放到用户的帐户中。但是这个文件夹在 Windows10中似乎不可用。

我需要有3个 SSH 密钥为不同的回购。

368311 次浏览
  1. 打开 windows 命令行(在搜索框中键入“ cmd”,然后按回车键)。
  2. 它将默认设置为您的主文件夹,所以您不需要将 cd设置为其他文件夹。
  3. 键入 ssh-keygen(如果找不到,则为 看这里)
  4. 将第一个参数保留为空(默认值) ,如果愿意,可以输入密码,或者将其保留为空
  5. 您的 ssh 密钥应该存储在选择的目录中,默认值是: /c/Users/YourUserName/.ssh/id_rsa.pub

P.S. : 如果你安装了带有 Bash 集成的 Git (像我一样) ,在第一步打开“ Git Bash”而不是“ cmd”

  1. 打开 windows 命令行(在搜索框中键入“ cmd”,然后按回车键)。
  2. 它将默认设置为您的主文件夹,所以您不需要将 cd设置为其他文件夹。
  3. 类型 mkdir .ssh

我发现了一个值得注意的例外,在 Windows 10中,使用所描述的路由只将文件写到文件夹中,如果文件名中的 没有具体说明在 ssh-keygen 生成器中。

给出一个自定义密钥名导致包含 RSA 公钥和私钥的文件不写入文件夹。

  • 打开 windows 命令行
  • 类型 ssh-keygen
  • 保留文件名为空,只需按回车键,
  • 设置密码
  • 生成密钥文件。它们现在将存在。并存储在 c:/Users/YourUserName/.ssh/

(使用管理命令行和 Windows10专业版)

警告: 如果您将密钥保存在 C:/User/username/. ssh(默认位置)下,请确保在某处备份密钥(如密码管理器)。

在最近的 Windows10更新(版本1607)之后,我的。Ssh 文件夹是空的。这是我的密钥一直在的地方,但 Windows 决定在更新时删除它们。

谢天谢地,我已经备份了我的钥匙... 但是... 我敢打赌,有些人今天将恢复他们的电脑。

2019-04-07最新消息: 我今天测试了一个新版本的 Windows 10(build 1809,“2018 October’s update”) ,不仅仅是开放的 SSH 客户端不再处于测试阶段,因为它已经安装好了。因此,您所需要做的就是创建密钥并将您的客户机设置为使用 open SSH 而不是 putty (pagent) :

  1. 打开命令提示符(cmd)
  2. 输入 ssh-keygen,然后按回车键
  3. 按回车键进入所有设置。现在您的密钥保存在 c: Users.ssh id _ rsa. pub 中
  4. 打开您的 git 客户端并将其设置为使用 Open SSH

我在 Git 扩展和源代码树上进行了测试,它可以与我在 GitHub 上的个人回购协议一起工作。 如果您使用的是早期的 Windows 版本,或者希望使用图形客户端进行 SSH,请阅读下面的内容。

2018年06月04日宣布:

在 Windows 10上,从版本1709(win + R 并键入 winver查找构建编号)开始,微软正在发布 OpenSSH 客户端和服务器的 beta 测试版。 要创建密钥,需要安装 OpenSSH 服务器:

  1. 打开开始菜单
  2. 输入“可选功能”
  3. 选择“添加可选功能”
  4. 点击“添加功能”
  5. 安装“ Open SSH Client”
  6. 重启电脑

现在您可以打开一个提示符和 ssh-keygen,客户端将被窗口识别。我还没测试过。 如果你没有 Windows10或者不想使用测试版,请按照下面的说明使用腻子。


ssh-keygen没有安装窗口。下面是如何使用 Putty 创建 ssh 键:

  1. 安装 油灰
  2. 打开 PuttyGen
  3. 检查键的类型和要使用的字节数PuttyGen parameters
  4. 将鼠标移到进度条上generating key with mouse input
  5. 现在可以定义密码短语并保存公钥和私钥key created dialog

对于 openssh 键,还需要几个步骤:

  1. 复制文本框中的文本,并将其保存为“ id _ rsa. pub”
  2. 要以 OpenSSH 格式保存私有密钥,请转到 Conversion-> Export OpenSSH key (如果您没有定义密钥,它将要求您确认您不需要通行密钥) menu for converting key to OpenSSH format
  3. 保存为“ id _ rsa”

现在钥匙都保存好了。启动 pagent并在那里添加私钥(Putty 格式的 ppk 文件) pagent keys dialog

请记住,要使身份验证起作用,必须运行 pagent

最后,我使用“ Run a Administrator”运行打开的命令行,即使我已经是管理员并且可以手动创建目录,我还是让它工作了

窗户: 如果你有 git for 窗口安装到它的文件夹。

enter image description here

查看 bin 目录。有一个 sh.exe 文件。运行它。

enter image description here

然后输入:

Ssh-keygen-t rsa-C“你的电子邮件在这里”

按照指示,然后输入:

Cat ~/. ssh/id _ rsa. pub | 剪辑

它会把钥匙复制到你的剪贴板上。 现在可以将该公钥粘贴到服务器端。

创建私钥/公钥:

  1. 打开终端(git bashPowerShellcmd.exe等)
  2. 输入 ssh-keygen
  3. 按回车键保存默认文件(~/.ssh/id_rsa)
  4. 按回车键输入默认密码短语(没有密码短语)
  5. 再按回车键
  6. 查看输出并确保 RSA3072或以上

您现在已经创建了一个私钥/公钥对。

对于 GIT,密钥必须具有 2048的强度,必须位于用户 .ssh目录中,并被称为 id_rsaid_rsa.pub在任何地方粘贴键时,确保使用的程序不添加新行,如 VIM。

我正在运行 Microsoft Windows 10 Pro,Version 10.0.17763 Build 17763,我看到我的。Ssh 文件夹容易在 C: 用户 jrosario。Ssh 不需要编辑权限或任何东西(尽管在文件资源管理器中,我选择了“显示隐藏文件、文件夹和驱动器”) : enter image description here

密钥存储在一个名为 known _ hosts 的文本文件中,该文件大致如下: enter image description here

如果您有带有 OpenSSH 客户端的 Windows 10,那么您可能能够生成密钥,但是您将很难将其复制到目标 Linux 框中,因为 ssh-copy-id 命令不是客户端工具集的一部分。

在遇到这个问题之后,我编写了一个小的 PowerShell 函数来解决这个问题,您可以将它添加到您的配置文件中。

function ssh-copy-id([string]$userAtMachine, [string]$port = 22) {
# Get the generated public key
$key = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub"
# Verify that it exists
if (!(Test-Path "$key")) {
# Alert user
Write-Error "ERROR: '$key' does not exist!"
}
else {
# Copy the public key across
& cat "$key" | ssh $userAtMachine -p $port "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1"
}
}

你可以在这里得到 大意

我有一份关于它的简要报告

你也可以试试(对于 Windows10Pro) 以管理员身份运行 Powershell 并键入 ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

另外,您可以尝试从 GitBash 终端运行 ssh-keygen

所有这些答案都会生成不够安全的默认密钥。这个答案给出了生成安全密钥的一种方法(许多方法中的一种)。我宁愿用我的答案,而不是这页上的其他答案... 到目前为止..。

Ssh-keygen-t rsa-b 4096