ChatGPT解决这个技术问题 Extra ChatGPT

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

我运行 git push -u origin master

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

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


C
Community

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 的一部分,其 releases 包括 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

作为 I explained before,Git for Windows 将很快淘汰 msysgit。
我在“Why is it that if you download Git 2.0 from the net, you always get a 1.9.4 installer package?”中详细介绍了这个新版本如何基于更新的 msys2 project


在 Windows 的 PATH 中包含 ssh-keygen.exe 是否安全?之后我需要删除它的位置吗?
@Green 实际上,它仅在您与 git 的会话期间是 Windows PATH 的一部分,因为您正在使用 git-cmd.bat: github.com/msysgit/msysgit/blob/master/git-cmd.bat 启动一个特殊的 DOS 会话。它将完成 PATH 并设置 HOME
实际上,路径应该没有ssh-keygen.exe。我的意思是,它只对我有用。
@alexander 我同意,我已经编辑了答案以使其更加明显。
对我来说,路径是 C:\Program Files (x86)\Git\usr\bin
c
cjaypierson

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

打开 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


+1 不建议安装其他软件包
+1 这是一个更好的解决方案,因为不需要其他安装
我的密钥没有保存在 .ssh 文件夹中。它保存在与 Git Bash 相同的目录中。
在我的情况下,在 powershell 中既没有找到 ssh-keygen 也没有找到 ssh。之前的会议,但它的工作。
D
Dinesh Rajan

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

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

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

https://i.stack.imgur.com/TzDsq.png


很好的答案 - 一种创建新 SSH 密钥的好方法 - TY :)
B
Bilton Tran

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

下载 git bash 的链接 here


p
pirgauthier

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

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


在我的系统 Windows 10 上,在 'git\usr\bin' 中找到了 ssh-keygen.exe。
u
user3233126

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

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


V
Vlad

只需转到 heroku.bat 并添加:

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

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


N
Nehal J Wani

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


O
Osama Saeed

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

C:\> sh

然后你得到了这样的

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

这应该有效。


e
emix

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

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

B
Benjamin Tan Wei Hao

您可能应该检查 this。 Windows 没有内置该命令。


B
Bartel De Brabandere

我通过将 ssh-keygen 添加到我的环境变量来解决它。


你到底做了什么?
Z
Zeeshan Khan

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


m
mikeLundquist

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