'ssh-keygen' wird nicht als interner oder externer Befehl erkannt


102

ich renne git push -u origin master

Es sagt mir, dass "Berechtigung verweigert (öffentlicher Schlüssel) fatal: Das entfernte Ende hat unerwartet aufgelegt"

Dann habe ich im Internet nachgeschlagen und festgestellt, dass ich einen SSH-Schlüssel für mein Konto auf GitHub generieren musste. Als ich dabei versuchte, ssh-keygen -t rsa "email@youremail.com" zu machen, hieß es einfach, dass ssh-keygen nicht erkannt wird. Ich habe versucht, mkdir C: \ ssh zu machen, aber das hat nicht funktioniert. Wenn es hilft, verwende ich Ruby Rails und bin auf einem Windows-Computer. Könnte mir jemand helfen?

Antworten:


133

2012:
ssh-keygen.exeist Teil von msysgit :

 C:\path\to\msysgit1.7.11\bin\ssh-keygen.exe

Wenn Ihr %PATH%enthält C:\path\to\msysgit1.7.11\bin\, haben Sie ssh-keygen.


Update 2015:
ssh-keygen.exeist ein Teil von Git für Windows , deren Veröffentlichungen umfassen PortableGit-2.4.3.1-2nd-Release-Kandidat-64-bit.7z

c:\path\to\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\usr\bin\ssh-keygen.exe

Das heißt, das %PATH%muss enthalten c:\path\to\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\usr\bin(ohne das ssh-keygen.exe)

Wie ich bereits erklärt habe , wird Git für Windows msysgit bald auslaufen lassen.
Ich habe in " Warum erhalten Sie beim Herunterladen von Git 2.0 aus dem Internet immer ein Installationspaket für 1.9.4? " Ausführlich erläutert, wie diese neue Version auf dem neueren msys2-Projekt basiert .


Ist es sicher, ssh-keygen.exeim PATH unter Windows zu haben? Muss ich den Speicherort danach entfernen?
Grün

@Green ist eigentlich PATHnur während Ihrer Sitzung mit git Teil von Windows , da Sie eine spezielle DOS-Sitzung mit git-cmd.batfolgender Adresse starten : github.com/msysgit/msysgit/blob/master/git-cmd.bat . Es wird das vervollständigen PATHund einstellen HOME.
VonC

Akut sollte der Weg ohne sein ssh-keygen.exe. Ich meine, es funktioniert nur so für mich.
Alexander

1
@alexander Ich stimme zu und habe die Antwort bearbeitet, um sie sichtbarer zu machen.
VonC

7
Für mich war der WegC:\Program Files (x86)\Git\usr\bin
Rupinderjeet

65

Ich hatte gerade dieses Problem und dachte, ich würde mitteilen, was ich für einen einfacheren Weg hielt, dies zu umgehen.

Öffnen Sie git-bash und führen Sie denselben Befehl mit dem Zusatz -C aus, da Sie in Ihrer E-Mail-Adresse einen Kommentar abgeben: ssh-keygen -t rsa -C "email@youremail.com"Befehl. Das ist es.

git-bash sollte installiert sein, als Sie git installiert haben. Wenn Sie es nicht finden können, können Sie C: \ Programme \ Git \ Git Bash überprüfen

Als ich dies zum ersten Mal tat, konnte der .ssh-Ordner nicht für mich erstellt werden, sodass ich eine Standard-Eingabeaufforderung und mkdir C: \ Users \ yourusername \ .ssh öffnen musste


15
+1 für den Vorschlag, kein anderes Softwarepaket zu installieren
Chip McCormick

2
+1 Dies ist eine bessere Lösung, da keine andere Installation
erforderlich ist

Mein Schlüssel wurde nicht im .sshOrdner gespeichert . Es wurde im selben Verzeichnis wie Git Bashvorhanden gespeichert .
Ahmad Behzadi

50

Ich folgte unten in Windows (mit Git für Windows installiert)

  1. Führen Sie "Git Gui" aus (Start -> Git -> Git Gui)
  2. Klicken Sie auf Hilfe und dann auf SSH-Schlüssel anzeigen
  3. Klicken Sie auf Schlüssel generieren, falls Sie noch keinen haben

Hinweis: - Dadurch werden die Schlüsseldateien unter Ihrem persönlichen Profilordner C: \ Users \ YourUserID \ .ssh \ erstellt

Geben Sie hier die Bildbeschreibung ein


9

Ich habe eine einfache Lösung gefunden, um dies zu beheben:

Wechseln Sie in der Eingabeaufforderung in Ihr Verzeichnis git \ bin, und führen Sie dann Ihre Befehle von hier aus aus


6
Auf meinem System, Windows 10, wurde ssh-keygen.exe in 'git \ usr \ bin' gefunden.
Tarabass

9

Umgebungsvariablen müssen nichts hinzugefügt werden! Öffnen Sie einfach git bash und führen Sie dort den Befehl ssh-keygen aus.

Link zum Herunterladen von Git Bash hier


8

Wenn Sie Git installiert haben und unter C: \ Programme installiert sind, gehen Sie wie folgt vor

  1. Gehen Sie zu "C: \ Programme \ Git"
  2. Führen Sie git-bash.exe aus. Dadurch wird ein neues Fenster geöffnet
  3. Führen Sie im neuen Bash-Fenster "ssh-keygen -t rsa -C" aus.
  4. Es fordert Sie zur Eingabe der Datei auf, in der der Schlüssel gespeichert werden soll. Geben Sie keinen Wert ein. Drücken Sie einfach die Eingabetaste
  5. Gleiches gilt für die Passphrase (zweimal). Drücken Sie einfach die Eingabetaste
  6. id_rsa und id_rsa.pub werden in Ihrem Home-Ordner unter .ssh generiert

4

Gehen Sie einfach zu heroku.bat und fügen Sie hinzu:

@SET PATH="D:\Program Files (x86)\Git\bin";%PATH% nach dem @SET PATH=%HEROKU_RUBY%;%PATH%

In meinem Fall befindet es sich in D: \ Programme (x86) \ Git \ bin. Ändern Sie es in den Pfad, in dem Sie Git installiert haben. (Ich habe es einfach mit meinem Pfad belassen, damit klarer wird, wie man das schreibt.)


3

Ich denke, Sie können den Speicherort der Datei ssh-keygen.exe in der Umgebungsvariablen PATH hinzufügen. Führen Sie die folgenden Schritte aus: Gehen Sie zu Arbeitsplatz-> Rechtsklick-> Eigenschaften-> Erweiterte Systemeinstellungen-> Klicken Sie auf Umgebungsvariablen. Klicken Sie nun auf PFAD und dann auf BEARBEITEN. Gehen Sie im Feld für den Variablenwert zum Ende und fügen Sie '; C: \ path \ to \ msysgit1.7.11 \ bin \ ssh-keygen.exe' (ohne Anführungszeichen) hinzu.


3

Tun Sie nichts, geben Sie einfach Ihre Eingabeaufforderung ein

C:\> sh

dann bist du so geworden

sh-4.4$ 
# type here 
ssh-4.4$ ssh-keygen -t rsa -b 4096 -C "example@example.com"

das sollte funktionieren.



1

Für Windows können Sie Folgendes hinzufügen:

SET PATH="C:\Program Files\Git\usr\bin";%PATH%


0

für diejenigen, die sich nicht für die Option BASH HERE entscheiden. Geben Sie sh in cmd ein, dann sollte ssh-keygen.exe verfügbar sein


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.