106

我跑git push -u origin master

它告诉我“权限被拒绝(公钥)致命:远程端意外挂断”

然后我在网上查了一下,发现我必须在 GitHub 上为我的帐户生成一个 ssh 密钥。但是,这样做后,当我尝试执行 ssh-keygen -t rsa "email@youremail.com" 时,它只是说 ssh-keygen 无法识别。我尝试做 mkdir C:\ssh 但这没有用。如果有帮助,我正在使用 Ruby Rails 并且我在 Windows 计算机上。有人可以帮我吗?

4

14 回答 14

134

2012:
ssh-keygen.exemsysgit的一部分:

 C:\path\to\msysgit1.7.11\bin\ssh-keygen.exe

如果您%PATH%包含C:\path\to\msysgit1.7.11\bin\,您将拥有ssh-keygen


2015 年更新:
ssh-keygen.exeGit For Windows的一部分,其版本包括PortableGit-2.4.3.1-2nd-release-candidate-64-bit.7z

c:\path\to\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\usr\bin\ssh-keygen.exe

这意味着%PATH%必须包括c:\path\to\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\usr\bin(没有ssh-keygen.exe

正如我之前解释的那样,Windows 版 Git 很快就会逐步淘汰 msysgit。
我在“为什么如果你从网上下载 Git 2.0,你总是得到一个 1.9.4 的安装包? ”中详细介绍了这个新版本是如何基于更新的msys2 项目的。

于 2012-08-02T06:07:09.393 回答
65

我刚刚遇到了这个问题,并认为我会分享我认为更简单的解决方法。

打开 git-bash 并添加 -C 运行相同的命令,因为您在您的电子邮件地址中发表评论: ssh-keygen -t rsa -C "email@youremail.com"命令。而已。

安装 git 时应该已经安装了 git-bash。如果找不到,可以检查 C:\Program Files\Git\Git Bash

我第一次这样做时,它未能为我创建 .ssh 文件夹,所以我不得不打开一个标准的命令提示符和 mkdir C:\Users\yourusername\.ssh

于 2013-05-10T22:30:10.767 回答
51

我在windows下面跟着(安装了Git for Windows)

  1. 运行“Git Gui”(开始 --> Git --> Git Gui)
  2. 单击帮助,然后单击显示 SSH 密钥
  3. 如果您还没有密钥,请单击生成密钥

注意:- 这会在您的个人资料文件夹 C:\Users\YourUserID\.ssh\ 下创建密钥文件

在此处输入图像描述

于 2017-06-14T16:11:30.860 回答
10

无需向环境变量添加任何内容!只需打开 git bash 并在其中执行 ssh-keygen 命令即可。

在这里下载 git bash 的链接

于 2014-07-28T12:07:49.843 回答
9

我找到了一个简单的解决方案来解决这个问题:

在命令提示符下,转到您的 git\bin 目录,然后从此处执行您的命令

于 2014-04-10T16:50:15.707 回答
8

如果你已经安装了 Git,并且安装在 C:\Program Files,如下

  1. 转到“C:\Program Files\Git”
  2. 运行 git-bash.exe,这会打开一个新窗口
  3. 在新的 bash 窗口中,运行“ssh-keygen -t rsa -C”
  4. 它提示保存密钥的文件,不要输入任何值 - 只需按 enter
  5. 密码相同(两次),只需按 Enter
  6. id_rsa 和 id_rsa.pub 将在您的主文件夹中的 .ssh 下生成
于 2017-09-08T16:21:58.530 回答
4

只需转到 heroku.bat 并添加:

@SET PATH="D:\Program Files (x86)\Git\bin";%PATH%@SET PATH=%HEROKU_RUBY%;%PATH%

就我而言,它位于 D:\Program Files (x86)\Git\bin 中,将其更改为您安装 Git 的路径。(我只是把它留在了我的路径上,所以如何写这个会更清楚)

于 2013-12-18T11:46:49.070 回答
3

我认为您可以在 PATH 环境变量中添加文件 ssh-keygen.exe 的位置。请按照以下步骤操作:转到我的电脑->右键单击->属性->高级系统设置->单击环境变量。现在单击 PATH,然后单击 EDIT。在变量值字段中,转到末尾并附加 ';C:\path\to\msysgit1.7.11\bin\ssh-keygen.exe'(不带引号)

于 2012-10-30T13:47:32.803 回答
3

不要做任何事情,只需在命令提示符下输入

C:\> sh

然后你得到了这样的

sh-4.4$ 
# type here 
ssh-4.4$ ssh-keygen -t rsa -b 4096 -C "example@example.com"

这应该有效。

于 2017-11-07T06:26:44.930 回答
2

对于 Windows,您可以添加以下内容:

SET PATH="C:\Program Files\Git\usr\bin";%PATH%
于 2018-10-31T05:24:17.343 回答
1

你可能应该检查这个。Windows 没有内置该命令。

于 2012-08-02T05:12:08.700 回答
0

我通过添加ssh-keygen到我的环境变量来修复它。

于 2013-06-10T07:52:44.200 回答
0

在我的机器上,ssh-keygen可以从 powershell 获得。

于 2019-04-01T17:36:18.487 回答
0

对于那些不选择 BASH HERE 选项的人。在 cmd 中输入 sh 然后他们应该可以访问 ssh-keygen.exe

于 2016-11-17T20:25:34.200 回答