wake-up-neo.com

Git mit SSH unter Windows

Ich habe den von Tim Davis bereitgestellten excellent-Guide durchgegangen , bei dem Git so konfiguriert wird, dass er mit SSH unter Windows arbeitet, um einen Git-Server zu erstellen, um einen Hauptplatz für mein DVCS zu haben. 

Ich bin gerade dabei, einen Klon für mein Projekt zu erstellen. Ich habe alle Schritte bis zu diesem Punkt durchlaufen, aber ich bekomme dies immer wieder von TortoiseGit:

git.exe clone -v “ssh://[email protected]:22/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”

bash: [email protected]: command not found
Initialized empty Git repository in E:/GitTest/myapp/.git/
fatal: The remote end hung up unexpectedly
Success

und nichts wird geklont.

Übrigens: Die Variable TortoisePLink erscheint kurz bevor diese Meldung erscheint und fragt mich: "login as:" (Ich dachte, dass diese Informationen im Befehl enthalten sind, d. H .: [email protected].).

Meine Heimatvariable wird an der richtigen Stelle gesetzt: Von einer Git-Bash-Shell:

echo $HOME
/c/SSH/home/Administrator

Ich habe auch versucht, PuTTYs Plink anstelle von TortoisePLink zu verwenden (sowohl bei Git als auch bei TortoiseGit). Dieses Mal wurde der Fehler eingegrenzt auf:

git.exe clone -v “ssh://[email protected]:22/c:/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”

Initialized empty Git repository in E:/GitTest/myapp/.git/
fatal: The remote end hung up unexpectedly
36
pankar

Ich habe einige Stunden mit diesem Problem gekämpft, bevor ich auf die offensichtliche Antwort gestoßen bin. Das Problem, das ich hatte, war, dass ich verschiedene ssh-Implementierungen verwendete, zwischen der Generierung meiner Schlüssel und der Verwendung von git.

Ich habe ssh-keygen aus dem Befehl Prompt verwendet, um meine Schlüssel zu generieren. Als ich jedoch "git clone ssh: // ..." ausprobierte, erhielt ich dieselben Ergebnisse wie Sie, eine Eingabeaufforderung für das Kennwort und die Meldung "fatal: The remote" Ende unerwartet aufgehängt ".

Bestimmen Sie, welches SSH-Fenster verwendet wird, indem Sie den Windows-Befehl "Wo" ausführen.

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

Die zweite Zeile zeigt an, welches Programm genau ausgeführt wird.

Als Nächstes müssen Sie feststellen, welche SSH von git verwendet wird. Finden Sie dies durch:

C:\set GIT_SSH
GIT_SSH=C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe

Und jetzt sehen Sie das Problem.

Um dies zu korrigieren, führen Sie einfach Folgendes aus:

C:\set GIT_SSH=C:\Program Files (x86)\Git\bin\ssh.exe

So prüfen Sie, ob Änderungen vorgenommen wurden:

C:\set GIT_SSH
GIT_SSH=C:\Program Files (x86)\Git\bin\ssh.exe

Git kann nun die zuvor generierten Schlüssel verwenden.

Dieses Update gilt bislang nur für das aktuelle Fenster. Um es vollständig zu beheben, müssen Sie Ihre Umgebungsvariable ändern.

  1. Öffnen Sie den Windows Explorer
  2. Klicken Sie mit der rechten Maustaste auf Computer und wählen Sie Eigenschaften
  3. Klicken Sie links auf den Link Advanced System Settings
  4. Klicken Sie auf die Schaltfläche Umgebungsvariablen ...
  5. Wählen Sie im Bereich Systemvariablen die Variable GIT_SSH aus und klicken Sie auf die Schaltfläche Bearbeiten
  6. Aktualisieren Sie den Variablenwert.
  7. Drücken Sie OK, um alle Fenster zu schließen

Jetzt haben alle zukünftigen Befehlsfenster, die Sie öffnen, die richtigen Einstellungen.

Hoffe das hilft.

79
Todd

Da dies immer wieder in den Suchergebnissen auftaucht, weil Git und Github unter Windows mit SSH funktionieren (und weil ich nichts aus den obigen Anleitungen benötigt habe) Ich füge die folgende, einfache Lösung hinzu.

(Microsoft sagt, dass sie are daran arbeiten, SSH zu Visual Studio hinzuzufügen, und GitHub für Windows unterstützt SSH immer noch nicht ...)

1. Ich habe "git for Windows" installiert (einschließlich ssh und einer bash Shell)

https://git-scm.com/download/win

2. Aus der enthaltenen Bash-Shell (die für mich unter C:\Program Files\Git\git-bash.exe Installiert wurde)

cd bis zur Root-Ebene, in der Ihr Repo gespeichert werden soll (etwa: C:\code\github\), und

Typ:

eval $(ssh-agent -s) && ssh-add "C:\Users\YOURNAMEHERE\.ssh\github_rsa"

3. Typ: (der SSH-Link vom Repo)

git clone [email protected]:RepoName/Project.git

12
jaygeek

sie verwenden hier ein intelligentes Zitat anstelle von ":

git.exe clone -v “ssh://
                ^^^ 

Stellen Sie sicher, dass Sie das einfache alte Anführungszeichen verwenden.

7
J-16 SDiZ

Ich habe meine ssh.exe im Verzeichnis "C:/Program Files/Git/usr/bin" gefunden

6
user3183915

Wenn Git für Windows installiert ist, führen Sie Git Bash Shell aus:

  bash

Sie können ssh in Bash Shell ausführen (Bash kennt den Pfad von ssh)

Um den genauen Pfad von ssh zu kennen, führen Sie den Befehl "where" in der Bash Shell aus:

  $ where ssh

du kriegst:

  c:\Program Files\Git\usr\bin\ssh.exe
0
M.Hassan

Ich habe versucht, mein Problem mit einigen der obigen Antworten zu lösen, und aus irgendeinem Grund hat es nicht funktioniert. Ich habe auf die Git-Erweiterungen umgestellt und dies sind die Schritte, die ich befolgt habe.

  1. Ich ging zu Tools -> Settings -> SSH -> Other ssh client
  2. Setzen Sie diesen Wert auf C:\Program Files\Git\usr\bin\ssh.exe
  3. Anwenden

Ich denke, dass diese Schritte genau die gleichen sind, die oben erklärt wurden. Der einzige Unterschied ist, dass ich die Git Extensions-Benutzeroberfläche anstelle des Terminals verwendet habe. Ich hoffe das hilft.

0
Dalsier