'ssh-keygen' n'est pas reconnu comme une commande interne ou externe


103

je cours git push -u origin master

Il me dit que "Autorisation refusée (clé publique) fatale: l'extrémité distante a raccroché de manière inattendue"

Ensuite, j'ai cherché sur Internet et j'ai découvert que je devais générer une clé ssh pour mon compte sur GitHub. Cependant, en faisant cela, quand j'ai essayé de faire ssh-keygen -t rsa "email@youremail.com", il a simplement dit que ssh-keygen n'était pas reconnu. J'ai essayé de faire mkdir C: \ ssh mais cela n'a pas fonctionné. Si cela aide, j'utilise Ruby Rails et je suis sur un ordinateur Windows. Quelqu'un pourrait-il m'aider?

Réponses:


133

2012:
ssh-keygen.exefait partie de msysgit :

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

si votre %PATH%inclut C:\path\to\msysgit1.7.11\bin\, vous aurez ssh-keygen.


Mise à jour 2015:
ssh-keygen.exefait partie de Git pour Windows , dont les versions incluent 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

Cela signifie que le %PATH%doit inclure c:\path\to\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\usr\bin(sans le ssh-keygen.exe)

Comme je l'ai expliqué précédemment , Git pour Windows supprimera bientôt msysgit.
J'ai détaillé dans " Pourquoi si vous téléchargez Git 2.0 sur le net, vous obtenez toujours un package d'installation 1.9.4? " Comment cette nouvelle version est basée sur le projet msys2 plus récent .


Est-il sûr d'avoir ssh-keygen.exedans le PATH sur Windows? Dois-je supprimer son emplacement après cela?
Vert

@Green en fait, il ne fait partie de Windows PATHque pendant votre session avec git, puisque vous lancez une session DOS spéciale avec git-cmd.bat: github.com/msysgit/msysgit/blob/master/git-cmd.bat . Il complètera le PATHet set HOME.
VonC

En réalité, le chemin devrait être sans ssh-keygen.exe. Je veux dire, cela ne fonctionne que de cette façon pour moi.
alexander

1
@alexander Je suis d'accord et j'ai modifié la réponse pour la rendre plus visible.
VonC

7
pour moi, le chemin étaitC:\Program Files (x86)\Git\usr\bin
rupinderjeet

65

Je viens d'avoir ce problème et j'ai pensé partager ce que je pensais être un moyen plus simple de contourner ce problème.

Ouvrez git-bash et exécutez la même commande avec l'ajout de -C puisque vous commentez dans votre adresse e-mail: ssh-keygen -t rsa -C "email@youremail.com"commande. C'est tout.

git-bash aurait dû être installé lorsque vous avez installé git. Si vous ne le trouvez pas, vous pouvez vérifier C: \ Program Files \ Git \ Git Bash

La première fois que j'ai fait cela, il n'a pas réussi à créer le dossier .ssh pour moi, j'ai donc dû ouvrir une invite de commande standard et mkdir C: \ Users \ yourusername \ .ssh


15
+1 pour ne pas suggérer l'installation d'un autre progiciel
Chip McCormick

2
+1 c'est une meilleure solution car vous n'avez pas besoin d'une autre installation
guoleii

Ma clé n'a pas été enregistrée dans le .sshdossier. Il a été enregistré dans le même répertoire que celui Git Bashexistant.
Ahmad Behzadi

51

J'ai suivi ci-dessous dans Windows (avec Git pour Windows installé)

  1. Exécutez "Git Gui" (Démarrer -> Git -> Git Gui)
  2. Cliquez sur Aide, puis sur Afficher la clé SSH
  3. Cliquez sur Générer la clé si vous n'en avez pas déjà une

Remarque: - cela crée les fichiers clés sous votre dossier de profil personnel C: \ Users \ YourUserID \ .ssh \

entrez la description de l'image ici


Excellente réponse - un moyen simple et agréable de créer une nouvelle clé SSH - TY :)
gav_aus_web

9

J'ai trouvé une solution simple pour résoudre ce problème:

Dans l'invite de commande, accédez à votre répertoire git \ bin, puis exécutez vos commandes à partir d'ici


6
Sur mon système, Windows 10, ssh-keygen.exe a été trouvé dans 'git \ usr \ bin'.
Tarabass

9

Pas besoin d'ajouter quoi que ce soit aux variables environnementales! Ouvrez simplement git bash et exécutez la commande ssh-keygen là-dedans.

Lien pour télécharger git bash ici


8

Si vous avez installé Git et est installé sur C: \ Program Files, procédez comme ci-dessous

  1. Allez dans "C: \ Program Files \ Git"
  2. Exécutez git-bash.exe, cela ouvre une nouvelle fenêtre
  3. Dans la nouvelle fenêtre bash, exécutez "ssh-keygen -t rsa -C" "
  4. Il demande le fichier dans lequel enregistrer la clé, n'entrez aucune valeur - appuyez simplement sur Entrée
  5. Idem pour la phrase de passe (deux fois), appuyez simplement sur Entrée
  6. id_rsa et id_rsa.pub seront générés dans votre dossier personnel sous .ssh

4

Allez simplement sur heroku.bat et ajoutez:

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

dans mon cas, il est dans D: \ Program Files (x86) \ Git \ bin, changez-le par le chemin dans lequel vous avez installé Git. (Je viens de le laisser avec mon chemin pour que ce soit plus clair sur la façon d'écrire ceci)


3

Je pense que vous pouvez ajouter l'emplacement du fichier ssh-keygen.exe dans la variable d'environnement PATH. Suivez les étapes: Accédez à Poste de travail-> Clic droit-> Propriétés-> Paramètres système avancés-> Cliquez sur Variables d'environnement. Cliquez maintenant sur PATH, puis sur EDIT. Dans le champ de la valeur de la variable, allez à la fin et ajoutez '; C: \ chemin \ à \ msysgit1.7.11 \ bin \ ssh-keygen.exe' (sans guillemets)


3

ne faites rien, tapez simplement votre invite de commande

C:\> sh

alors tu as comme ça

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

cela doit fonctionner.


2

Pour Windows, vous pouvez ajouter ceci:

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



0

pour ceux qui ne choisissent pas l'option BASH ICI. tapez sh dans cmd alors ils devraient avoir ssh-keygen.exe accessible


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.