'ssh-keygen' non è riconosciuto come comando interno o esterno


103

io corro git push -u origin master

Mi dice che "Autorizzazione negata (chiave pubblica) fatale: il terminale remoto si è bloccato in modo imprevisto"

Poi ho cercato su Internet e ho scoperto che dovevo generare una chiave ssh per il mio account su GitHub. Tuttavia, dopo averlo fatto, quando ho provato a eseguire ssh-keygen -t rsa "email@youremail.com", si è semplicemente detto che ssh-keygen non è stato riconosciuto. Ho provato a fare mkdir C: \ ssh ma non ha funzionato. Se aiuta sto usando Ruby Rails e sono su un computer Windows. Qualcuno può aiutarmi?

Risposte:


133

2012:
ssh-keygen.exefa parte di msysgit :

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

se il tuo %PATH%include C:\path\to\msysgit1.7.11\bin\, lo avrai ssh-keygen.


Aggiornamento 2015:
ssh-keygen.exefa parte di Git per Windows , le cui versioni includono PortableGit-2.4.3.1-2nd-release-candidate-64-bit.7z

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

Ciò significa che il %PATH%deve includere c:\path\to\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\usr\bin(senza il ssh-keygen.exe)

Come ho spiegato prima , Git per Windows eliminerà presto msysgit.
Ho spiegato in " Perché se scarichi Git 2.0 dalla rete, ottieni sempre un pacchetto di installazione 1.9.4? " Come questa nuova versione si basa sul più recente progetto msys2 .


È sicuro averlo ssh-keygen.exenel PERCORSO su Windows? Devo rimuovere la sua posizione dopo?
Verde

@ Green in realtà fa parte di Windows PATHsolo durante la tua sessione con git, poiché stai lanciando una sessione DOS speciale con git-cmd.bat: github.com/msysgit/msysgit/blob/master/git-cmd.bat . Completerà il PATHset e HOME.
VonC

In realtà, il percorso dovrebbe essere senza ssh-keygen.exe. Voglio dire, funziona solo in questo modo per me.
alexander

1
@alexander sono d'accordo e ho modificato la risposta per renderla più visibile.
VonC

7
per me, il percorso eraC:\Program Files (x86)\Git\usr\bin
rupinderjeet

65

Ho appena avuto questo problema e ho pensato di condividere quello che pensavo fosse un modo più semplice per aggirare questo problema.

Apri git-bash ed esegui lo stesso comando con l'aggiunta di -C poiché stai commentando nel tuo indirizzo email: ssh-keygen -t rsa -C "email@youremail.com" comando. Questo è tutto.

git-bash dovrebbe essere stato installato quando hai installato git. Se non riesci a trovarlo puoi controllare C: \ Program Files \ Git \ Git Bash

La prima volta che l'ho fatto non è riuscito a creare la cartella .ssh per me, quindi ho dovuto aprire un prompt dei comandi standard e mkdir C: \ Users \ yourusername \ .ssh


15
+1 per non aver suggerito l'installazione di un altro pacchetto software
Chip McCormick

2
+1 questa è una soluzione migliore perché non è necessaria un'altra installazione
guoleii

La mia chiave non è stata salvata nella .sshcartella. È stato salvato nella stessa directory Git Bashesistente.
Ahmad Behzadi

51

Ho seguito di seguito in Windows (con Git per Windows installato)

  1. Esegui "Git Gui" (Start -> Git -> Git Gui)
  2. Fare clic su Guida e quindi su Mostra chiave SSH
  3. Fai clic su Genera chiave se non ne hai già uno

Nota: questo crea i file chiave nella cartella del profilo personale C: \ Users \ YourUserID \ .ssh \

inserisci qui la descrizione dell'immagine


Ottima risposta: un bel modo semplice per creare una nuova chiave SSH - TY :)
gav_aus_web

9

Ho trovato una soluzione semplice per risolvere questo problema:

Nel prompt dei comandi, vai alla directory git \ bin, quindi esegui i comandi da qui


6
Sul mio sistema, Windows 10, ssh-keygen.exe è stato trovato in "git \ usr \ bin".
Tarabass

9

Non c'è bisogno di aggiungere nulla alle variabili ambientali! Basta aprire git bash ed eseguire il comando ssh-keygen lì dentro.

Link per scaricare git bash qui


8

Se hai installato Git ed è installato in C: \ Programmi, segui come di seguito

  1. Vai a "C: \ Programmi \ Git"
  2. Esegui git-bash.exe, si aprirà una nuova finestra
  3. Nella nuova finestra bash, esegui "ssh-keygen -t rsa -C" "
  4. Richiede il file in cui salvare la chiave, non inserire alcun valore - basta premere invio
  5. Lo stesso per la passphrase (due volte), basta premere Invio
  6. id_rsa e id_rsa.pub verranno generati nella tua cartella home sotto .ssh

4

Vai su heroku.bat e aggiungi:

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

nel mio caso è in D: \ Program Files (x86) \ Git \ bin, modificalo nel percorso in cui hai installato Git. (L'ho appena lasciato con il mio percorso quindi sarà più chiaro come scrivere questo)


3

Penso che tu possa aggiungere la posizione del file ssh-keygen.exe nella variabile d'ambiente PATH. Segui i passaggi: Vai a Risorse del computer-> Fare clic con il pulsante destro del mouse-> Proprietà-> Impostazioni di sistema avanzate-> Fare clic su Variabili ambientali. Ora fai clic su PERCORSO e quindi su MODIFICA. Nel campo del valore della variabile, vai alla fine e aggiungi "; C: \ path \ to \ msysgit1.7.11 \ bin \ ssh-keygen.exe" (senza virgolette)


3

non fare nulla, basta digitare nel prompt dei comandi

C:\> sh

allora sei così

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

questo dovrebbe funzionare.


2

Per Windows puoi aggiungere questo:

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



0

per chi non sceglie l'opzione BASH HERE. digita sh in cmd, quindi dovrebbero avere ssh-keygen.exe accessibile


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.