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:

  1. a lancé L'agent ssh embarqué Sourcetree (concours)
  2. ajouté mon .ppk (Mastic Clé Privée) pour le Concours de l'aide de ma phrase de passe
  3. a ouvert le Terminal SourceTree dans l'emplacement de mon projet, appelons-le C:/Project.
  4. Utilisé git init pour initialiser le référentiel.
  5. Utilisé git push -u origin --all afin de pousser le repo de mon ordinateur à BitBucket.
  6. Eu cette erreur: Permission denied (publickey).
  7. 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.

36
demandé sur t0mgs 2014-02-25 21:13:32

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.'.

70
répondu Maher Abuthraa 2018-02-26 12:10:30

j'ai eu besoin de modifier davantage ces paramètres SourceTree:enter image description here

14
répondu ApceH Hypocrite 2014-12-04 21:53:05

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.

10
répondu Frédéric Bolduc 2015-11-13 04:43:05

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.

8
répondu t0mgs 2014-02-28 10:02:10

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

2
répondu Rashad Akoodie 2018-03-05 10:52:04