28

Github(+ Netbeans)を動作させるのに苦労しています。

gitでsshを使用して(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's / plink'sフォルダーを指して、それらの実行可能ファイルを指していますが、それでも同じメッセージです。

接続をテストすると、すべてが正常に機能します。

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

私は何が間違っているのですか?git initそもそもディレクトリでを行うと違いはありますか?

編集

これは役に立ちませんでした:

plinkのパスをに設定GIT_SSHして追加するplink.exePATH

**編集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

gitbashで動作しました。

編集:これはもう必要ないはずです。代わりに、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をリセットすることで、この問題を解決することができました。

GitBashターミナルでこのWindowsCMDコマンドを実行して、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、egにインストールされていますC:\Program Files\Git

  • Windowsキー
  • 「env」と入力して入力
  • [Environment Variables]ボタン、システム変数セクション
  • 編集または追加GIT_SSH=ssh
  • Pathそのダイアログを表示しているときに、同じセクションを編集します
  • 値を追加するC:\Program Files\Git\usr\binか、Gitssh.exeバイナリが配置されている場所ならどこでも。
  • 私はあなたのgitssh.exeバイナリを主張しますが、最近Windows10に同梱されているOpenSSHバイナリではありません。%SYSTEMROOT%\System32\OpenSSH\
  • これが重要なステップです。これを使用Move upして、Gitssh.exeをOpenSSHよりも優先します。(下の写真を参照)
  • すべてOKして、作業コンソールをリロードします

git pushこれで動作するはずです。 ここに画像の説明を入力してください

ご了承ください:

  • シンボリックリンクやジャンクションは必要ありませんでした
  • Windowsのアクセス許可は変更されません
  • スペースなどを逃がさない
  • 二重引用符は使用しません
于 2021-09-16T10:44:20.673 に答える
2

これは本当に恥ずかしいことですが、本当の問題はComodo Firewall、ssh接続がによって初期化されるのをどういうわけかブロックしていた私のファイアウォールにありましたgit

コマンドラインやPuttyを使用するなど、ssh経由で問題なく接続できますが、どういうわけかComodoこの奇妙な問題を引き起こしていました。

皆様のご支援ありがとうございました!

于 2012-08-18T22:08:16.133 に答える
2

パス(例:C:\ Program Files(x86)\ Git)に空白があるため、認識できないと思います。

それを解決する

  • パスを短くするための簡単なリンクを作成する

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

それは私とJenkins(Gitプラグインで使用する場合)でも機能します

  • GIT_SSH = C:\Gitを設定します
  • 最後に、PATHをに設定します%GIT_SSH%\bin
于 2013-11-27T10:28:30.350 に答える
1

あいまいなアンチウイルスの相互作用がない限り、このエラーメッセージが表示される他のケース(参照している問題313以外)は次のとおりです。

エラー:gitを生成できません:そのようなファイルまたはディレクトリはありません

このエラーが発生した場合は、「error: cannot spawn git: No such file or directory」これは非常に厄介な問題です。
追跡するのに1日かかりましたが、リポジトリに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 \ ssh.exeではなく、ディレクトリC :\ Program Files \OpenSSH\を指していることでした。これを修正した後、gitはPowerShellとbashの両方で機能しました。

于 2021-03-30T12:19:51.687 に答える
0

私のWindows7のデフォルトのmsgitbashインストールでは、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 に答える