我跑git push -u origin master
它告诉我“权限被拒绝(公钥)致命:远程端意外挂断”
然后我在网上查了一下,发现我必须在 GitHub 上为我的帐户生成一个 ssh 密钥。但是,这样做后,当我尝试执行 ssh-keygen -t rsa "email@youremail.com" 时,它只是说 ssh-keygen 无法识别。我尝试做 mkdir C:\ssh 但这没有用。如果有帮助,我正在使用 Ruby Rails 并且我在 Windows 计算机上。有人可以帮我吗?
2012:
ssh-keygen.exe是msysgit的一部分:
C:\path\to\msysgit1.7.11\bin\ssh-keygen.exe
如果您%PATH%包含C:\path\to\msysgit1.7.11\bin\,您将拥有ssh-keygen。
2015 年更新:
ssh-keygen.exe是Git 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 项目的。
我刚刚遇到了这个问题,并认为我会分享我认为更简单的解决方法。
打开 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
无需向环境变量添加任何内容!只需打开 git bash 并在其中执行 ssh-keygen 命令即可。
在这里下载 git bash 的链接
我找到了一个简单的解决方案来解决这个问题:
在命令提示符下,转到您的 git\bin 目录,然后从此处执行您的命令
如果你已经安装了 Git,并且安装在 C:\Program Files,如下
只需转到 heroku.bat 并添加:
@SET PATH="D:\Program Files (x86)\Git\bin";%PATH%后@SET PATH=%HEROKU_RUBY%;%PATH%
就我而言,它位于 D:\Program Files (x86)\Git\bin 中,将其更改为您安装 Git 的路径。(我只是把它留在了我的路径上,所以如何写这个会更清楚)
我认为您可以在 PATH 环境变量中添加文件 ssh-keygen.exe 的位置。请按照以下步骤操作:转到我的电脑->右键单击->属性->高级系统设置->单击环境变量。现在单击 PATH,然后单击 EDIT。在变量值字段中,转到末尾并附加 ';C:\path\to\msysgit1.7.11\bin\ssh-keygen.exe'(不带引号)
不要做任何事情,只需在命令提示符下输入
C:\> sh
然后你得到了这样的
sh-4.4$
# type here
ssh-4.4$ ssh-keygen -t rsa -b 4096 -C "example@example.com"
这应该有效。
对于 Windows,您可以添加以下内容:
SET PATH="C:\Program Files\Git\usr\bin";%PATH%
你可能应该检查这个。Windows 没有内置该命令。
我通过添加ssh-keygen到我的环境变量来修复它。
在我的机器上,ssh-keygen可以从 powershell 获得。
对于那些不选择 BASH HERE 选项的人。在 cmd 中输入 sh 然后他们应该可以访问 ssh-keygen.exe