Je travaille sur un projet dans un référentiel privé sur https://www.bitbucket.com .
Je le code localement, puis je prépare, valide et pousse la mise à jour via le client Windows Git de BitBucket, Sourcetree .
Après cela, je récupère les fichiers d'un serveur distant partagé , ce qui nécessite une authentification SSH.
J'ai essayé ce qui suit afin de connecter le dépôt git au compte bitbucket:
C:/Project
.git init
Pour initialiser le référentiel.git Push -u Origin --all
Afin de Pousser le dépôt de mon ordinateur vers BitBucket.Permission denied (publickey).
ssh -Tv [email protected]
- Toujours, Permission denied
.J'essaie de comprendre ce qui s'est exactement passé - a-t-il trouvé ma clé SSH? La clé n'est-elle pas chargée à un endroit spécifique?
Remarque: J'ai chargé la clé publique dans mon profil sur BitBucket.
Eh bien, j'ai trouvé la solution après de nombreux essais et erreurs. Apparemment, en utilisant keygen de PuTTY et en stockant la nouvelle clé publique dans mon .ssh
le dossier ne fonctionne pas. Cependant, en utilisant ssh-keygen
IN GIT BASH puis essayer de se connecter en utilisant la nouvelle paire de clés générée, fonctionne très bien. Par curiosité mais plus que tout - j'aimerais savoir pourquoi c'est le cas.
À qui peut avoir le même problème sur Mac avec la nouvelle Sierra. La solution serait d'ajouter une clé privée à l'agent SSH via:
ssh-add -K ~/.ssh/id_rsa
Il semble que l'identité [id_rsa] ne persiste pas par l'agent SSH.
Notez que ce n'est pas une solution permanente .. Vous devriez le faire à chaque fois que vous clonez un nouveau référentiel. Du moins, pas besoin de fournir de clé privée pour chaque Push à distance.
-------- Mise à jour 28.Sep.2017 --------
Solution permanente (sur Sierra):
Pas:
1- Assurez-vous d'avoir un ssh-agent en cours d'exécution avant de faire quoi que ce soit.
Pour vérifier si ssh-agent est exécuté par:
pgrep 'ssh-agent'
Cette commande renvoie le PID (ProcessID) de ce processus s'il est en cours d'exécution. Si vous voyez une valeur .. Passez à l'étape 2. sinon, vous devez exécuter cet agent en arrière-plan en:
eval "$(ssh-agent -s)"
2- Modifier ~/.ssh/config
(Créer s'il n'existe pas en tant que su
):
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
3- Ajoutez ensuite cet agent clé (ce serait une fois):
ssh-add -K ~/.ssh/id_rsa
C'est ça.
En fait, l'étape # 2 est cruciale. Je veux juste fournir un guide complet.
J'espère que cela peut vous aider. '.
J'avais besoin de modifier davantage ces paramètres SourceTree:
Je sais que cela 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 met .ppk
fichiers pour les clés privées, qui ne fonctionneront pas en dehors du contexte habituel PuTTY/Pageant.
En effet, le terminal s'attend par défaut à trouver un fichier nommé id_rsa
dans ~/.ssh
et PuTTY ne génère pas cela par défaut. Git Bash's ssh-keygen
le fait cependant, c'est pourquoi la solution de Tom Granot fonctionne. Vous POUVEZ, cependant, via le générateur de clés PuTTY, exporter le même fichier exact via le Conversions/Export OpenSSH Key...
option dans le menu. Assurez-vous simplement de le nommer id_rsa
et placez-le à côté de votre id_rsa.pub
fichier, et tout devrait bien fonctionner.
Cela m'est arrivé après avoir mis à jour mon Sourcetree sur mon Mac. Ce qui a fonctionné pour moi, c'était simplement de tout supprimer dans le ~/.ssh/
dossier sauf le .config
et le known_hosts
Dossiers. Ensuite, accédez simplement à sourcetree dans les 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 doivent rajouter les clés localement et à GitHub