'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 protected]" 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?

user1567909
quelle

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 .

VonC
quelle
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 protected]"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

cjaypierson
quelle
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

Dinesh Rajan
quelle
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

pirgauthier
quelle
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

Bilton Tran
quelle
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
user3233126
quelle
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.)

Vlad
quelle
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.

Nehal J Wani
quelle
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 "[email protected]"

das sollte funktionieren.

Osama Saeed
quelle
1

Sie sollten dies wahrscheinlich überprüfen . In Windows ist dieser Befehl nicht integriert.

Benjamin Tan Wei Hao
quelle
1

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

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

Ich habe es behoben, indem ich nur ssh-keygenmeine Umgebungsvariablen hinzugefügt habe.

Bartel De Brabandere
quelle
Was genau hast du gemacht?
Antony Hatchkins
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

Zeeshan Khan
quelle
0

In meiner Maschine ssh-keygenwar von Powershell erhältlich.

mikeLundquist
quelle