28

我很难让 Github(+Netbeans 工作)。

我想将 ssh 与 git(在 Windows 7 上)一起使用,例如,提交或克隆项目,但我不断收到此错误消息:

$ git clone git@github.com:USER/PROJECTNAME.git
error: cannot spawn C:\Program Files (x86)\Git\bin\ssh.exe: No such file or directory
fatal: unable to fork

注意:目前,我的GIT_SSH环境变量指向C:\Program Files (x86)\Git\bin\ssh.exe,但我也尝试过C:\Program Files (x86)\Git\bin,完全擦除它,指向 putty/plink 的文件夹,并指向它们的可执行文件,但仍然是相同的消息。

当我测试连接时,一切正常:

$ ssh -T git@github.com
Hi USER! You've successfully authenticated, but GitHub does not provide shell access.

我究竟做错了什么?如果我git init首先在目录中执行它会有所不同吗?

编辑

这没有帮助:

设置GIT_SSHplink.exe添加 plink 的路径PATH

**编辑 2 **

命令的结果GIT_TRACE=2

$ GIT_TRACE=2 git clone git@github.com:XXX/AffableBean
trace: built-in: git 'clone' 'git@github.com:XXX/AffableBean'
Cloning into 'AffableBean'...
trace: run_command: 'Plink.exe' '-batch' 'git@github.com' 'git-upload-pack '\''XXX/AffableBean'\'''
error: cannot spawn Plink.exe: No such file or directory
fatal: unable to fork
4

12 回答 12

13

到目前为止,没有一个答案对我有用。最终为我解决了这个问题的是从我的GIT_SSH变量中删除引号并且根本不转义任何字符,没有 MSYS 路径样式(例如。/c/path\ to\ putty/plink.exe)。只需正常输入路径,Git 处理引用。

set GIT_SSH=C:\path to putty\plink.exe

而已。使用 GIT_TRACE 时,您可以看到变量在结果命令中被引用,因此:

  1. 添加的双引号会更改传递给命令的字符串,并且

  2. 路径用单引号括起来,所以空格没问题。

希望对某人有所帮助。

于 2015-09-01T22:28:31.237 回答
11

在我的情况下,将 GIT_SSH 设置为:

GIT_SSH=/c/Program\ Files\ (x86)/Git/bin/ssh.exe

在 git bash 中工作。

编辑:这应该不再需要了。而是使用 Windows 凭据管理器。谢谢@breakpoint

于 2013-07-08T05:28:36.320 回答
5

您是否尝试将 ssh.exe 安装到不包含空格的路径?您是否测试过引用反斜杠是否有效(\\)?

您也可以尝试GIT_TRACE=2 git clone <...>,它应该向您显示 git 尝试运行以进行连接的命令和参数。

于 2012-05-19T13:44:09.673 回答
5

就我而言,我能够通过在 CMD 终端中创建目录连接并重置 GIT_SSH 来解决该问题。

通过在 Git Bash 终端中运行此 Windows CMD 命令来查找 ssh 命令的路径。

$ where ssh
C:\Program Files\Git\usr\bin\ssh.exe

在 CMD 终端中为原始 Git 目录创建一个没有空格的连接。

mklink /J \git "\Program Files\Git"

然后编辑 GIT_SSH 环境变量以使用联结。对于 Windows 7,控制面板 > 系统和安全 > 系统 > 高级系统设置。

C:\git\usr\bin\ssh.exe

在将 PuTTY 使用切换到 OpenSSH 后,我以某种方式遇到了这个问题。git 版本是 2.21.0.windows.1。我希望这有帮助。

于 2019-04-09T05:32:53.330 回答
3

多么史诗般的跋涉!以上没有对我有用,但这是我的解决方案。在那次手术之前,我总是得到:

错误无法生成 ssh:权限被拒绝。

先决条件:Git for Windows,安装在例如C:\Program Files\Git

  • 窗口键
  • 输入“env”+回车
  • [Environment Variables]按钮,系统变量部分
  • 编辑或添加GIT_SSH=ssh
  • 当您在该对话框中时,现在编辑Path同一部分
  • 添加 value C:\Program Files\Git\usr\bin,或者您的 Git ssh.exe 二进制文件所在的任何位置。
  • 我坚持使用您的git ssh.exe 二进制文件,而不是您的OpenSSH二进制文件,这些文件现在随 Windows 10 一起提供,在%SYSTEMROOT%\System32\OpenSSH\
  • 现在是关键步骤:使用Move upGit ssh.exe优先于 OpenSSH。(见下图)
  • 确定一切,然后重新加载您的工作控制台

git push现在应该可以工作了。 在此处输入图像描述

注意:

  • 不需要符号链接或连接
  • 没有更改任何 Windows 权限
  • 没有逃脱任何空间或任何东西
  • 不使用双引号
于 2021-09-16T10:44:20.673 回答
2

i think a path (ex: C:\Program Files (x86)\Git) having blank space so it cannot recognise.

to resolve it

  • make a simple link to shorten path

    mklink /d "C:/Git" "C:\Program Files (x86)\Git"

it works for me and also for Jenkins (if you use it with Git plugin)

  • set GIT_SSH=C:\Git
  • Finally, set PATH to %GIT_SSH%\bin
于 2013-11-27T10:28:30.350 回答
2

这真的很尴尬,但真正的问题是我的防火墙Comodo Firewall以某种方式阻止了 ssh 连接被git.

我可以毫无问题地通过 ssh 连接,例如使用命令行或 Putty,但不知何故Comodo导致了这个奇怪的问题。

感谢大家的支持!

于 2012-08-18T22:08:16.133 回答
1

除非您有一些模糊的防病毒交互,否则看到此错误消息的唯一其他情况(除了您所指的问题 313 )是:

错误:无法生成 git:没有这样的文件或目录

如果您遇到此错误“ error: cannot spawn git: No such file or directory”,这是一个非常讨厌的问题。
我花了一天的时间来追踪它,但归结为如果你在存储库中有超过 500 个标签,它必须破坏一些内部命令行限制。
TLDR:如果您收到此错误,请删除一堆标签。

于 2012-05-17T13:20:03.587 回答
1

对于找到此帖子但有类似以下错误消息的任何人(权限被拒绝):

error: cannot spawn C:\Program Files\OpenSSH\: Permission denied
fatal: unable to fork

就我而言,错误是 GIT_SSH 指向目录C:\Program Files\OpenSSH\而不是文件C:\Program Files\OpenSSH\ssh.exe。修复此问题后,git 在 PowerShell 和 bash 中都可以工作。

于 2021-03-30T12:19:51.687 回答
0

在我的 Windows 7 默认 ms git bash 安装中,我需要将 GIT_SSH 设置为:

"C:\\Program Files (x86)\\Git\\bin\\ssh.exe"

因此,只需找到 Git 安装提供的 ssh.exe 并使用正确的目录更新上述内容。

要使每次运行 git bash 时都保持不变,只需在 .bashrc 文件中添加主目录:

export GIT_SSH="C:\\Program Files (x86)\\Git\\bin\\ssh.exe"
于 2013-08-24T08:48:21.217 回答
0

如果您使用的是 Windows PowerShell,请尝试将正确的路径设置为GIT_SSH. 就我而言:

PS C:\some\path> $env:GIT_SSH="C:\Program Files\PuTTY\plink.exe"
于 2021-08-03T09:21:49.253 回答
-1

我不断收到错误

错误:无法生成“C:\Plink.exe”:没有这样的文件或目录致命:无法分叉

当做git pushgit pull。我通过进入 .git/config 文件并更改来解决它

url = git@github.com:<USER>/<REPO>.git

url = https://github.com/<USER>/<REPO>

希望这可以帮助!

于 2017-06-14T10:05:28.997 回答