it-swarm.com.de

"Kann ssh nicht spawnen", wenn eine Verbindung zu Github hergestellt wird, aber ssh -T [email protected] funktioniert?

Es fällt mir schwer, Github (+ Netbeans) zum Laufen zu bringen.

Ich möchte ssh mit git (unter Windows 7) verwenden, um z. B. ein Projekt festzuschreiben oder zu klonen, erhalte jedoch weiterhin die folgende Fehlermeldung:

$ 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

Hinweis: Im Moment zeigt meine Umgebungsvariable GIT_SSH auf C:\Program Files (x86)\Git\bin\ssh.exe, aber ich habe auch versucht, C:\Program Files (x86)\Git\bin zu löschen, auf den Ordner von PuTTY/plink zu zeigen und auf ihre ausführbaren Dateien, aber immer noch dieselbe Meldung.

Wenn ich die Verbindung teste, funktioniert alles einwandfrei:

$ ssh -T [email protected]
Hi USER! You've successfully authenticated, but GitHub does not provide Shell access.

Was mache ich falsch? Macht es einen Unterschied, ob ich den git init zuerst im Verzeichnis mache?

EDIT:

Das hat nicht geholfen:

setze GIT_SSH auf plink.exe und füge den Pfad von plink zu PATH hinzu

** EDIT 2 **

ergebnis des Befehls mit 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

Das ist wirklich peinlich, aber das eigentliche Problem lag bei meiner Firewall Comodo Firewall, die irgendwie die SSH-Verbindung daran hinderte, von git initialisiert zu werden. 

Ich kann problemlos über ssh verbinden, z. mit der Befehlszeile oder PuTTY, aber Comodo verursachte irgendwie dieses seltsame Problem.

Danke an alle für die Unterstützung!

2
Patryk

In meinem Fall setzen Sie GIT_SSH auf: 

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

arbeitete in git bash.

9
schoetbi

Keine der bisherigen Antworten funktionierte für mich. Was am Ende dieses Problems behoben wurde, war das Entfernen von Anführungszeichen aus meiner GIT_SSH-Variablen und das Escape-Zeichen überhaupt nicht, kein MSYS-Pfadstil (zB /c/path\ to\ PuTTY/plink.exe). Geben Sie einfach den Pfad normal ein, Git behandelt das Zitat.

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

Das ist es. Wenn Sie GIT_TRACE verwenden, können Sie sehen, dass die Variable im resultierenden Befehl in Anführungszeichen gesetzt wird:

  1. die hinzugefügten Anführungszeichen ändern die an den Befehl übergebene Zeichenfolge und 

  2. der Pfad wird in einfache Anführungszeichen gesetzt, sodass die Leerzeichen in Ordnung sind.

Hoffe das hilft jemandem.

5
cgchoffman

Haben Sie versucht, ssh.exe in einem Pfad zu installieren, der keine Leerzeichen enthält? Und haben Sie getestet, ob das Quotieren von Backslashes funktioniert (\\)?

Sie könnten auch GIT_TRACE=2 git clone <...> versuchen, es sollte Ihnen den Befehl und die Parameter zeigen, die git für die Verbindung versucht.

5
user1338062

ich denke ein Pfad (zB: C:\Programme (x86)\Git) mit Leerzeichen, damit er nicht erkannt wird. 

um es zu lösen

  • erstellen Sie einen einfachen Link, um den Pfad zu verkürzen 

    mklink/d "C:/Git" "C:\Programme (x86)\Git"

es funktioniert für mich und auch für Jenkins (wenn Sie es mit Git-Plugin verwenden)

  • setze GIT_SSH = C:\Git
  • Setzen Sie schließlich PATH auf %GIT_SSH%\bin.
2
biolinh

In meinem Fall konnte ich dieses Problem beheben, indem ich eine Verzeichnisverknüpfung im CMD-Terminal erstellte und GIT_SSH zurücksetzte.

Suchen Sie den Pfad des Befehls ssh, indem Sie diesen Windows CMD-Befehl im Git Bash-Terminal ausführen.

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

Erstellen Sie eine Junction ohne Leerzeichen für das ursprüngliche Git-Verzeichnis im CMD-Terminal.

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

Bearbeiten Sie dann die Umgebungsvariable GIT_SSH, um die Junction zu verwenden. Bei Windows 7 Systemsteuerung> System und Sicherheit> System> Erweiterte Systemeinstellungen.

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

Ich bin auf dieses Problem gestoßen, nachdem ich die PuTTY-Nutzung auf OpenSSH umgestellt habe. Die Git-Version war 2.21.0.windows.1. Ich hoffe das hilft.

2
yoshy27

Wenn Sie nicht über eine obskure Anti-Virus-Interaktion verfügen, ist der einzige andere Fall (neben Problem 313 , auf den Sie sich beziehen), in dem diese Fehlermeldung angezeigt wird:

" Fehler: Kann git nicht erzeugen: Keine solche Datei oder Verzeichnis "

wenn Sie diese Fehlermeldung "error: cannot spawn git: No such file or directory" erhalten, ist dies ein wirklich böses Problem.
Es hat einen Tag gedauert, bis ich es gefunden habe, aber es läuft darauf hinaus, dass wenn Sie mehr als 500 Tags in einem Repository haben, es einige interne Befehlszeilengrenzen sprengen muss.
TLDR: Wenn Sie diesen Fehler erhalten, entfernen Sie einige Tags.

1
VonC

Bei meiner Windows 7-Standardinstallation von ms git bash musste ich GIT_SSH folgendermaßen einstellen:

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

So finden Sie einfach Ihre ssh.exe, die mit der Git-Installation geliefert wurde, und aktualisieren Sie das obige mit dem richtigen Verzeichnis.

Damit dies jedes Mal dauerhaft ist, wenn Sie git bash ausführen, fügen Sie einfach Ihr Heimatverzeichnis in der .bashrc-Datei hinzu:

export GIT_SSH="C:\\Program Files (x86)\\Git\\bin\\ssh.exe"
0
Mareker

Ich habe ständig den Fehler bekommen

fehler: "C:\Plink.exe" kann nicht erzeugt werden: Keine solche Datei oder dieses Verzeichnis

bei git Push und git pull. Ich habe es gelöst, indem ich in die .git/config -Datei gegangen bin und es geändert habe

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

zu

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

Hoffe das hilft!

0
andrewzm