'ssh-keygen'不被识别为内部或外部命令

我运行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.exessh-keygen.exe的一部分:

  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

正如我之前解释的 ,Git for Windows将很快淘汰msysgit。
我在“ 为什么如果你从网上下载Git 2.0,你总是会得到一个1.9.4的安装包? ”这个新版本是如何基于最新的msys2项目的 。

我只是有这个问题,并认为我会分享我认为这是一个更简单的方法。

打开git-bash并运行相同的命令,加上-C,因为你在注释你的电子邮件地址: ssh-keygen -t rsa -C "email@youremail.com"命令。 而已。

git-bash应该在你安装git时被安装。 如果你找不到它,你可以检查C:\ Program Files \ Git \ Git Bash

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

我在Windows下面(使用Windows的Git安装)

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

注意: – 这会在您的个人资料文件夹C:\ Users \ YourUserID \ .ssh \

在这里输入图像说明

我发现了一个简单的解决scheme来解决这个

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

不需要添加任何东西到环境variables! 只要打开git bash,然后在那里执行命令ssh-keygen。

链接下载git bash 在这里

只要去heroku.bat并添加:

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

在我的情况下,它在D:\ Program Files文件(x86)\ Git \ bin中,将其更改为您安装Git的path。 (我只是把它留在我的path,所以这将更清楚如何写这个)

我想你可以在PATH环境variables中添加文件ssh-keygen.exe的位置。 遵循以下步骤:转到我的电脑 – >右键单击 – >属性 – >高级系统设置 – >单击环境variables。 现在点击PATH,然后点击编辑。 在variables值字段中,转到末尾并追加'; C:\ path \ to \ msysgit1.7.11 \ bin \ ssh-keygen.exe'(不带引号)

如果您已经安装了Git,并安装在C:\ Program Files,请按照下列步骤操作

  1. 转到“C:\ Program Files \ Git”
  2. 运行git-bash.exe,打开一个新窗口
  3. 在新的bash窗口中,运行“ssh-keygen -t rsa -C”“
  4. 它会提示保存密钥的文件,不要input任何值 – 只需按Enter即可
  5. 同样的密码(两次),只需按下input
  6. id_rsa和id_rsa.pub将在您的主文件夹下生成.ssh

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

我通过将ssh-keygen添加到我的环境variables中来解决问题。

对于那些没有selectBASH HERE的人来说。 在cmd中键入sh,那么他们应该可以访问ssh-keygen.exe

只要input命令提示符就不要做任何事情

 C:\> sh 

那么你有这样的

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

这应该是必须的。