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

user1567909
la source

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 .

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

cjaypierson
la source
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

Dinesh Rajan
la source
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

Pirgauthier
la source
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

Bilton Tran
la source
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
user3233126
la source
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)

Vlad
la source
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)

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

cela doit fonctionner.

Oussama Saeed
la source
2

Pour Windows, vous pouvez ajouter ceci:

SET PATH="C:\Program Files\Git\usr\bin";%PATH%
oumina
la source
1

Vous devriez probablement vérifier cela . Windows n'a pas cette commande intégrée.

Benjamin Tan Wei Hao
la source
0

Je l'ai réparé en ajoutant simplement ssh-keygenà mes variables d'environnement.

Bartel De Brabandere
la source
Qu'avez-vous exactement fait?
Antony Hatchkins
0

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

Zeeshan Khan
la source
0

Dans ma machine, ssh-keygenétait disponible à partir de PowerShell.

mikeLundquist
la source