无法将“ ssh-keygen”识别为内部或外部命令


103

我跑 git push -u origin master

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

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

Answers:


133

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.exeWindowsGit的一部分,其版本包括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

正如我以前解释,混帐for Windows将很快淘汰msysgit。
我在“ 为什么从网上下载Git 2.0总是得到1.9.4安装程序包? ”中对此进行了详细说明,该新版本如何基于最新的msys2项目


ssh-keygen.exe在Windows上的PATH中安全吗?之后是否需要删除其位置?
格林

@Green实际上,它是Windows的一部分PATH只用git会话期间,因为你正在推出一个特殊的DOS会话git-cmd.batgithub.com/msysgit/msysgit/blob/master/git-cmd.bat。它将完成PATH和设置HOME
VonC

从根本上讲,路径应该没有ssh-keygen.exe。我的意思是,它仅对我有用。
亚历山大2015年

1
@alexander我同意,并且我对答案进行了编辑以使其更明显。
VonC 2015年

7
对我来说,道路是C:\Program Files (x86)\Git\usr\bin
rupinderjeet

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


15
+1(不建议安装其他软件包)
Chip McCormick 2014年

2
+1这是一个更好的解决方案,因为不需要其他安装
guoleii 2014年

我的密钥未保存在.ssh文件夹中。它已保存在与Git Bash存在的目录相同的目录中。
艾哈迈德·贝扎迪

51

我在Windows中按照以下说明进行操作(安装了适用于Windows的Git)

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

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

在此处输入图片说明


很好的答案-一种创建新SSH密钥的好方法
-TY

9

我找到了解决此问题的简单方法:

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


6
在我的系统Windows 10上,在``git \ usr \ bin''中找到ssh-keygen.exe。
Tarabass

9

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

链接在这里下载git bash


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下的主文件夹中生成。

4

只需转到heroku.bat并添加:

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

在我的情况下,它位于D:\ Program Files(x86)\ Git \ bin中,将其更改为安装Git的路径。(我只留下了我的路径,因此它将在如何编写它上更加清晰)


3

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


3

不执行任何操作,只需在命令提示符下键入

C:\> sh

然后你就这样

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

这应该工作。


2

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

SET PATH="C:\Program Files\Git\usr\bin";%PATH%



0

对于那些不选择BASH HERE选项的用户。在cmd中键入sh,那么他们应该可以访问ssh-keygen.exe


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.