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

110

我运行了git push -u origin master

它告诉我:“Permission denied (public key) fatal: The remote end hung up unexpectedly”

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

14个回答

136

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-第二版发布候选版-64位.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项目


在Windows上将ssh-keygen.exe添加到PATH中是否安全?之后我需要删除它的位置吗? - Green
@Green 实际上,这只是在您使用 Git 期间 Windows 的 PATH 的一部分,因为您正在使用带有 git-cmd.bat 的特殊 DOS 会话:https://github.com/msysgit/msysgit/blob/master/git-cmd.bat。它将完成 PATH 并设置 HOME - VonC
实际上,路径应该没有 ssh-keygen.exe。我的意思是,只有这种方式对我有效。 - alexander
1
@alexander 我同意,并且我已经编辑了答案以使其更加明显。 - VonC
7
对我而言,路径是 C:\Program Files (x86)\Git\usr\bin - rupinderjeet
@rupinderjeet47 是的,它是 <git 安装路径\usr\bin>。我更喜欢将存档文件解压到我想要的位置,而不是使用 MSI 安装程序,该程序默认安装在 C:\Program files\Git 中。 - VonC

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
2
+1 这是一个更好的解决方案,因为不需要其他安装。 - guoleii
我的密钥没有保存在.ssh文件夹中。它保存在与Git Bash存在的相同目录中。 - Ahmad Behzadi
在我的情况下,无论是 ssh-keygen 还是 ssh 都找不到 powershell。但之前的会话可以正常工作。 - Timo

52
在Windows系统中(已安装Git for Windows),按照以下步骤进行操作:
  1. 运行"Git Gui"(开始菜单--> Git --> Git Gui)
  2. 点击帮助,然后选择“显示SSH密钥”
  3. 如果您还没有密钥,请点击“生成密钥”按钮

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

输入图像描述


非常好的答案 - 一个创建新SSH密钥的简单易行的方法 - 谢谢 :) - gav_aus_web

10

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

下载Git Bash的链接在这里


9
我找到了一个简单的解决方案来解决这个问题:
在命令提示符中,进入你的git\bin目录,然后从这里执行你的命令。

6
在我的系统 Windows 10 上,ssh-keygen.exe 被发现在 'git\usr\bin' 目录中。 - Tarabass

8
如果您已经安装了Git,并且它安装在C:\Program Files下,请按照以下步骤操作:
  1. 进入 "C:\Program Files\Git" 目录
  2. 运行 git-bash.exe,这将打开一个新的窗口
  3. 在新的bash窗口中,运行 "ssh-keygen -t rsa -C"" 命令
  4. 它会提示您选择保存密钥的文件,不需要输入任何值 - 只需按回车键即可
  5. 同样地,对于密钥短语(两次),只需按回车键
  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

不要做任何操作,只需在命令提示符中输入命令即可。

C:\> sh

那么你就会得到这样的结果。
sh-4.4$ 
# type here 
ssh-4.4$ ssh-keygen -t rsa -b 4096 -C "example@example.com"

这必须有效运行。


3

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

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

3

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接