Git Bash & Pageant n'utilisant pas les clés

j'ai git pour Windows (configuré pour MinTTY et PuTTYplink.exe) et PuTTY installé, et j'essaye de le faire fonctionner avec un dépôt BitBucket. J'ai ma clé SSH chargée, dans le concours et sur le site web, et pourtant chaque fois que je tente de faire quelque chose qui nécessite tirer/pousser:

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Quand je lance l'suggéré ssh -v hg@bitbucket.orgid_rsa mais aucun de mes autres clés dans ~/.ssh. Essayez d'utiliser ssh-add ~/.ssh/bitbucket_rsa résultat:

Could not open a connection to your authentication agent.

j'ai lu sur la configuration PuTTY pour permettre le forwarding, mais c'est habituellement là que le Conseil se termine, donc j'ai juste mis cette option pour la session par défaut et je l'ai sauvegardée là.

j'ai run ps à vérifier les applications qui ont été en cours d'exécution, et ssh-agent n'était pas parmi eux. Cours d'exécution eval 'ssh-agent' lance le démon, mais il ne fait aucune différence.

28
demandé sur Dissident Rage 2016-01-31 06:40:52

5 réponses

C'est ce qui a fini par travailler pour moi.

Btw, j'ai bash sous Windows, mais je ne pense pas que les questions.

J'ai fait installer SourceTree et j'ai pointé son dossier avec plink.exe,. Vous pouvez également télécharger et installer séparément.

Configurer Windows Environment Variable

  1. Tapez Environment dans votre barre de recherche Windows 10. Sinon, ouvrez Propriétés du système / système avancé Paramétrez et trouvez vos Variables D'environnement.
  2. Ajouter une nouvelle variable Système
    • Nom De La Variable: GIT_SSH
    • Valeur Variable: chemin d'accès complet à plink.exe file (vous pouvez aussi avoir pageant.exe et puttygen.exe dans le même dossier).
      • le Mien est: C:\Program Files (x86)\Atlassian\SourceTree\tools\putty\plink.exe
      • Remarque:: la nouvelle version de SourceTree (v2 sous Windows) utilise des répertoires suivis en versions alors à chaque mise à jour, vous devrez mettre à jour ce qui suit: est une douleur. Il est préférable de simplement faire une copie de plink.exe et le mettre dans un endroit où elle ne va pas changer.
      • si vous avez l'un des programmes ci-dessus, vous pouvez toujours ouvrir le gestionnaire de tâches, trouver le processus et ouvrir l'emplacement du dossier pour obtenir le chemin vers plink.exe.

Profit

assurez-vous de redémarrer vos terminaux pour qu'ils obtiennent les variables d'environnement mises à jour. Pour moi, je courais bash pour mon terminal intégré dans VSCode, donc j'ai dû redémarrer VSCode. Il aurait certainement été acceptable de fermer le terminal intégré et d'en ouvrir un nouveau, mais je voulais aussi que la fonctionnalité git intégrée dans VSCode fonctionne.

Remarque:

étant donné que J'ai installé SourceTree j'ai pu utiliser son interface pour cloner vers le bas de BitBucket et pousser à travers son interface, mais essayer les terminaux ne fonctionnait pas parce qu'ils utilisaient un justificatif d'identité différent définir.

une autre chose intéressante à souligner est que si vous naviguez dans la configuration git de votre projet situé à:./.git/config, vous pouvez changer votre télécommande de ssh en https. Vous pouvez récupérer les valeurs suivantes de votre vue d'ensemble sur votre dépôt BitBucket.

  • shh mise en page: git@bitbucket.org:USERNAME/REPO_NAME.git
  • https mise en page: https://USERNAME@bitbucket.org/USERNAME/REPO_NAME.git

j'ai remarqué en utilisant https sur Windows 10 qu'il utilisera alors Windows Credential Manager (I j'ai essayé d'y ajouter mes justificatifs d'identité tout en essayant de m'en rendre compte moi-même, mais j'utilisais encore SSH alors ça n'a pas d'importance) lorsque vous allez interagir avec le dépôt distant, il vous demandera vos justificatifs d'identité et les stockera pour utilisation ultérieure dans Windows Credential Manager :)

espérons que l'une de ces méthodes vous conviendra. La méthode HTTPS sautera la génération de clés SSH et la poussera vers le haut dans BitBucket, mais se sent plus sûr et portable pour je.

Mac OS

vous devrez peut-être ajouter votre clé au porte-clés, surtout si vous utilisez VSCode et que vous avez une phrase de passe sur votre clé (actuellement VSCode ne vous permettra pas de taper une phrase de passe).

ssh-add -K ~/.ssh/id_rsa

https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#adding-your-ssh-key-to-the-ssh-agent

56
répondu CTS_AE 2018-08-07 21:32:24

Vous mélangez les choses.

PuTTY et Pageant ne sont pas compatibles avec les outils openSSH et ne peuvent pas communiquer ensemble. PuTTY ne peut pas lire les clés de votre agent openssh et openssh ne peut pas lire les clés du concours. Le format de la clé est également différent. C'est une mauvaise chose dans ce monde, mais il n'y a pas de solution à l'horizon.

aussi " agent forwarding "est quelque chose de différent de"using agent".

Si vous configurer Git avec plink (assurez-vous que vous avez vraiment fait), vérifiez si votre concours est en cours d'exécution et si dans votre profil stocké dans PuTTY sous Connection->SSH->Auth, l'option "Attempt authentication using Pageant" est cochée.

si cela ne résout pas vos problèmes, postez un journal de débogage à partir de putty.

4
répondu Jakuje 2016-01-31 16:19:14

pour accéder aux touches SSH chargées dans Pegeant à partir de git bash, qui est livré avec Git-on-Windows, vous pouvez utiliser ce programme. Le processus d'installation est décrit sur la page liée.

1
répondu ivangretsky 2016-11-24 09:43:46

vous n'avez pas besoin de putty pour travailler avec BitBucket en ssh: l'openssh (C:\prgs\git\PortableGit-2.7.0-64-bit\usr\bin\ssh.exe) emballés dans git-pour-windows fonctionne très bien.

assurez-vous que, dans votre session shell actuelle, vous avez la valeur%USERPROFILE% (PortableGit-2.7.0-64-bit\git-cmd.exe est suffisant pour ouvrir un CMD régulier correctement configuré)

Créer %USERPROFILE%\.ssh un fichier nommé config (comme dans étape 3 de la Atlassian doc):

Host bitbucket.org
 IdentityFile ~/.ssh/bitbucket_rsa

(Vous pouvez aussi utiliser "/C/path/to/bitbucket_rsa")

Qui permet de utilisez une url ssh comme bitbucket.org:user/repo.

Tester avec ssh -Tv bitbucket.org (après avoir ajouté votre clé publique à votre compte BitBucket, bien sûr)

Remarque: ssh-agent n'est nécessaire que si votre clé privée est la phrase de passe-protégés.

mise à Jour 2018, 2 ans plus tard: " Dites adieu à Putty car Microsoft ajoute un Client OpenSSH à Windows 10".

Il est vraiment temps de laisser de côté putty: pas besoin d'un format de clé différent (ppk) et propriété solution maintenant que la openssh est officiellement distribué comme une fonctionnalité Windows (en version bêta pour l'instant, Q1 2018).

1
répondu VonC 2018-02-21 09:35:00

ce qui a fonctionné pour moi avec git bash pour windows 7: convertir .pkk fichier à open-ssh format: