La sauvegarde de la clé SSH échoue
je viens de démarrer un tutoriel Git et j'arrive à une impasse: j'essaie de générer une partie clé rsa et ça échoue. J'ai fait ceci, en git bash:
ssh-keygen -t rsa -C "myemail@myemail.com"
et j'ai eu ça:
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Eva/.ssh/id_rsa):
enter passphrase:
enter same passphrase again:
open /c/Users/Eva/.ssh/id_rsa failed: no such file or directory.
Saving the key failed:/c/Users/Eva/.ssh/id_rsa.
j'ai essayé de sauvegarder dans un autre dossier et ça s'est bien passé. mais maintenant, je fais la commande ssh -T git@github.com
et il me donne l'erreur permisson denied (publickey).
9 réponses
si vous préférez utiliser une interface graphique pour créer les clés
- utiliser Putty Gen pour générer une clé
- exporter la clé comme une clé SSH ouverte
- comme mentionné par @VonC créer le .SSH directory et puis vous pouvez laisser tomber les clés privées et publiques là-bas
- ou utiliser un programme GUI (comme Tortue Git ) pour utiliser les touches SSH
Pour une procédure pas à pas sur putty gen pour les étapes ci-dessus, s'il vous plaît voir http://ask-leo.com/how_do_i_create_and_use_public_keys_with_ssh.html
si vous utilisez Windows, le chemin par défaut du style unix de ssh-keygen est en cause.
à la ligne 2, il est écrit Enter file in which to save the key (/c/Users/Eva/.ssh/id_rsa):
.
Ce nom de fichier complet dans les paranthèses est la valeur par défaut, évidemment Windows ne peut pas accéder à un fichier comme cela. Si vous tapez l'équivalent Windows ( c:\Users\Eva\.ssh\id_rsa
), cela devrait fonctionner.
c:\Users\Administrator\.ssh>ssh-keygen -t rsa -C "myemail@myemail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/Administrator/.ssh/id_rsa): C:\Users\Administrator\.ssh\id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\Administrator\.ssh\id_rsa.
Your public key has been saved in C:\Users\Administrator\.ssh\id_rsa.pub.
The key fingerprint is:
... myemail@myemail.com
The key's randomart image is:...`
je sais que c'est un vieux fil, mais j'ai pensé que la réponse pourrait aider les autres.
il semble que vous exécutiez cette commande à partir d'une session DOS (voir ce thread ), et cela signifie que vous devez créer le répertoire .ssh
avant ladite commande.
ou vous pouvez l'exécuter depuis la session de bash (qui fait partie de la distribution msysgit), et cela devrait fonctionner.
j'ai eu le même problème. J'ai dû fournir le chemin complet en utilisant les conventions de Windows. À cette étape:
Enter file in which to save the key (/c/Users/Eva/.ssh/id_rsa):
fournir la valeur suivante:
c:\users\eva\.ssh\id_rsa
vous devez créer le .classeur SSH vous-même pour sauvegarder les clés SSH.
au fait, j'ai utilisé ce style de chemin: C:/Users/you/.ssh/id_rsa
j'utilisais bash sur les fenêtres qui venaient avec git. Le problème était que je pensais que le tilde (~) que j'utilisais pour indiquer mon chemin personnel s'étendrait correctement. Cela fonctionne quand on utilise cd, mais pour corriger cette erreur j'ai dû juste lui donner le chemin absolu.
dans Windows j'ai dû créer la variable d'environnement HOME
pointant d'abord sur mon profil d'utilisateur (C:\Users\<name>)
ou n'importe quel répertoire que vous préférez.
démarrez alors une nouvelle fenêtre de ligne de commande, créez un répertoire .ssh
dans votre profil d'utilisateur ou choisissez la direction en utilisant la commande mkdir ".ssh"
.
après avoir fait cela, j'ai pu utiliser le ssh-keygen sans aucun problème de chemin.
j'ai lutté avec le même problème pendant un moment juste maintenant (en utilisant Mac). Voici ce que j'ai fait et cela a finalement fonctionné:
(1) confirmer le .ssh répertoire existe:
#show all files including hidden
ls -a
(2) Accepter toutes les valeurs par défaut par juste en appuyant sur entrée à l'invite
Enter file in which to save the key (/Users/username/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Vous devriez obtenir un message :
Your identification has been saved in /Users/username/.ssh/id_rsa.
Your public key has been saved in /Users/username/.ssh/id_rsa.pub.
The key fingerprint is:
BZA156:HVhsjsdhfdkjfdfhdX+BundfOytLezXvbx831/s youremail.@email.com
The key's randomart image is:XXXXX
PS Si vous configurez git pour les rails, faites ce qui suit: ( source ):
git config --global color.ui true
git config --global user.name "yourusername"
git config --global user.email "youremail@email.com"
ssh-keygen -t rsa -C "youremail@email.com"
(puis accepter toutes les valeurs par défaut en appuyant sur enter)
votre méthode devrait bien fonctionner sur un Mac, mais sur les fenêtres, deux étapes supplémentaires sont nécessaires.
- créer un nouveau dossier à l'emplacement désiré et le nommer".SSH."(notez le point de fermeture - ceci disparaîtra, mais est nécessaire pour créer un dossier commençant par ".")
- utilisez le format file path C:/Users/NAME/.ssh / id_rsa (pas de point de fermeture.SSH.)
sauvegarder la clé id_rsa dans ce l'emplacement doit résoudre l'erreur d'autorisation.