web-dev-qa-db-ja.com

Githubに接続するときに「sshを生成できません」が、ssh -T [email protected]は機能しますか?

Github(+ Netbeansが動作する)を取得するのに苦労しています。

プロジェクトをコミットまたは複製するためにsshをgit(Windows 7)で使用したいのですが、次のエラーメッセージが表示され続けます。

_$ git clone [email protected]: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 [email protected]
Hi USER! You've successfully authenticated, but GitHub does not provide Shell access.
_

何が悪いのですか?最初にディレクトリで_git init_を実行すると、違いがありますか?

[〜#〜]編集[〜#〜]

これは助けにはなりませんでした:

_GIT_SSH_を_plink.exe_に設定し、plinkのパスをPATH に追加します

**編集2 **

_GIT_TRACE=2_を使用したコマンドの結果

_$ GIT_TRACE=2 git clone [email protected]:XXX/AffableBean
trace: built-in: git 'clone' '[email protected]:XXX/AffableBean'
Cloning into 'AffableBean'...
trace: run_command: 'Plink.exe' '-batch' '[email protected]' 'git-upload-pack '\''XXX/AffableBean'\'''
error: cannot spawn Plink.exe: No such file or directory
fatal: unable to fork
_
19
Patryk

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

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

みんな応援ありがとう!

2
Patryk

私の場合、GIT_SSHを次のように設定します。

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

git bashで動作しました。

10
schoetbi

これまでのところ、どの答えも私にとってうまくいきませんでした。最終的にこの問題を解決したのは、私のGIT_SSH変数であり、文字をエスケープしない、MSYSパススタイルなし(例:/c/path\ to\ PuTTY/plink.exe)。通常のパスを入力するだけで、Gitが引用を処理します。

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

それでおしまい。 GIT_TRACEを使用すると、結果のコマンドで変数が引用符で囲まれていることがわかります。

  1. 追加された二重引用符は、コマンドに渡される文字列を変更し、

  2. パスは一重引用符で囲まれているため、スペースは問題ありません。

それが誰かを助けることを願っています。

8
cgchoffman

スペースを含まないパスにssh.exeをインストールしてみましたか?また、バックスラッシュの引用が機能するかどうかをテストしましたか(\\)?

GIT_TRACE=2 git clone <...>、gitが接続のために実行しようとしているコマンドとパラメーターが表示されます。

5
user1338062

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

それを解決する

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

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

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

  • gIT_SSH = C:\ Gitを設定します
  • 最後に、PATHを%GIT_SSH%\binに設定します
2
biolinh

私の場合、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でした。これがお役に立てば幸いです。

2
yoshy27

あいまいなウイルス対策の相互作用がない限り、このエラーメッセージが表示される唯一の他のケース(参照している issue 31 以外)は次のとおりです。

" error:cannot spawn git:No such file or directory "

このエラーが発生した場合 "error: cannot spawn git: No such file or directory "本当に厄介な問題です。
追跡するのに1日かかりましたが、要約すると、リポジトリに500を超えるタグがある場合、内部のコマンドラインの制限を膨らませる必要があります。
TLDR:このエラーが発生した場合は、一連のタグを削除してください。

1
VonC

私の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"
0
Mareker

いつもエラーが出ていました

エラー: "C:\ Plink.exe"を生成できません:そのようなファイルまたはディレクトリはありません致命的:フォークできません

git Pushおよびgit pull。 .git/configファイルに移動して変更することで解決しました

url = [email protected]:<USER>/<REPO>.git

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

お役に立てれば!

0
andrewzm