Source arbre clé publique SSH refusée
je travaille sur un projet dans un dépôt privé sur https://www.bitbucket.com.
je le code localement, puis j'organise, commente et pousse la mise à jour du client Windows Git de vie BitBucket, Sourcetree.
Après cela, je suis en tirant la fichiers à partir d'une distance partagé serveur, qui nécessite une authentification SSH.
j'ai essayé ce qui suit afin de connecter le git repo avec le bitbucket compte:
- a lancé L'agent ssh embarqué Sourcetree (concours)
- ajouté mon .ppk (Mastic Clé Privée) pour le Concours de l'aide de ma phrase de passe
- a ouvert le Terminal SourceTree dans l'emplacement de mon projet, appelons-le
C:/Project
. - Utilisé
git init
pour initialiser le référentiel. - Utilisé
git push -u origin --all
afin de pousser le repo de mon ordinateur à BitBucket. - Eu cette erreur:
Permission denied (publickey).
- Essayé de voir si je peux
ssh -Tv git@bitbucket.org
-Permission denied
.
j'essaie de comprendre ce qui a mal tourné-est - ce que j'ai trouvé ma clé SSH? La clé n'est-elle pas chargée à un endroit précis?
Remarque: j'ai chargé la clé publique dans mon profil sur BitBucket.
5 réponses
À qui ont le même problème sur Mac avec Sierra. La Solution serait d'ajouter la clé privée de l'agent SSH via:
ssh-add -K ~/.ssh/id_rsa
il semble que l'identité [id_rsa] ne persiste pas chez l'agent ssh.
notez qu'il ne s'agit pas d'une solution permanente .. Vous devez faire cela chaque fois que vous clonez un nouveau dépôt.Au moins alors pas besoin de fournir la clé privée pour chaque poussée à distance.
-------- mise à Jour 28.Sep.Deux mille dix sept --------
solution permanente (sur Sierra):
Mesures:
1-Assurez-vous d'avoir un agent ssh en arrière-plan avant de faire quoi que ce soit.
Pour vérifier si ssh-agent est en cours d'exécution par:
pgrep 'ssh-agent'
cette commande renvoie PID (ProcessID) de ce processus s'il est en cours d'exécution. Si vous voyez une valeur.. Passez à l'Étape#2. si pas, alors vous devez exécuter l'agent en arrière-plan par:
eval "$(ssh-agent -s)"
2 - Edition ~/.ssh/config
(créer si ce N'est pas le cas exister en tant que su
):
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
3 - puis ajouter cet agent clé (qui serait une fois ):
ssh-add -K ~/.ssh/id_rsa
C'est ça.
en fait, la deuxième étape est cruciale. Je veux juste fournir un guide complet.
j'espère que peut vous aider.'.
j'ai eu besoin de modifier davantage ces paramètres SourceTree:
je sais que c'est résolu, mais pour ajouter à la réponse acceptée, vous n'avez pas vraiment besoin de Git Bash pour que cela fonctionne. Comme L'a dit Cupcake, il est vrai que PuTTY sort .ppk
des fichiers pour les clés privées, qui ne fonctionneront pas en dehors du contexte habituel PuTTY/Pageant.
C'est parce que le terminal attend par défaut pour trouver un fichier nommé id_rsa
~/.ssh
et PuTTY ne génère pas cela par défaut. Git Bash's ssh-keygen
fait cependant, ce qui est pourquoi la solution de Tom Granot fonctionne.
Vous Peut, cependant, à travers le générateur de clés PuTTY, exporter le même fichier exact à travers le Conversions/Export OpenSSH Key...
option dans le menu. Assurez-vous simplement de nom id_rsa
et en avoir une s'asseoir à côté de votre id_rsa.pub
le fichier, et tout devrait fonctionner correctement.
Bien que j'ai trouvé la solution après beaucoup d'essais et d'erreurs.
Apparemment, en utilisant le clavier de PUTTY et en stockant la nouvelle clé publique dans mon .ssh
dossier ne fonctionne pas.
Cependant, l'utilisation de ssh-keygen
IN GIT BASH et ensuite essayer de se connecter en utilisant la nouvelle paire de clés générée, fonctionne très bien.
La curiosité, bien plus que n'importe quoi - j'aimerais savoir pourquoi c'est le cas.
cela m'est arrivé après avoir mis à jour ma Sourcetree sur mon Mac.
Ce qui a fonctionné pour moi était tout simplement enlever tout dans le ~/.ssh/
sauf le dossier .config
et known_hosts
dossiers. Ensuite, allez simplement à sourcetree sous préférences, supprimez votre compte github, ajoutez à nouveau le profil après avoir supprimé tous les .ssh
les clés publiques et privées et sourcetree devrait ajouter de nouveau les touches localement et à GitHub