J'essaie de me connecter à un référentiel Git (sur Bitbucket) avec SSH à partir de Visual Studio 2017 (qui, à ma connaissance, prend en charge SSH pour Git). J'ai tout configuré, le référentiel est cloné sur mon ordinateur et je peux valider, mais si j'essaie de faire quelque chose comme l'extraction, le message suivant (de la fenêtre "Output" de Visual Studio) échoue:
Error encountered while fetching: Git failed with a fatal error.
fatal: Could not read from remote repository.
En l’essayant à l’invite de commande, je reçois ces messages un peu plus informatifs:
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
De Git Bash, j'ai essayé d'ouvrir l'agent SSH, d'ajouter ma clé privée et de récupérer du contenu, et cela semble fonctionner (ou du moins je ne reçois aucun message, contrairement au cas où l'agent n'est pas démarré ou la clé n'est pas ajoutée):
eval `ssh-agent`
ssh-add ~/.ssh/xxxx
git fetch
Mais Visual Studio est toujours incapable de se connecter. J'ai également essayé de faire la même chose à partir de l'invite de commande Windows:
ssh-agent
set SSH_AUTH_SOCK=/tmp/ssh-SIAryCa61iz9/agent.11128
set SSH_AGENT_PID=9804
ssh-add xxxx
git fetch
Mais je reçois toujours la même erreur.
J'ai déjà ajouté la clé publique à Bitbucket et ssh -T [email protected]
génère le résultat "connecté en tant que xxxx". De plus, je peux me connecter correctement en utilisant SourceTree et en ajoutant la clé privée à Pageant (la clé que j’utilise pour ssh-add
a le format OpenSSH requis, je l’ai créée à partir de celle de .ppk).
J'ai finalement réussi à le faire fonctionner, en utilisant l'agent d'authentification Pageant de PuTTY au lieu de ssh-agent
et en suivant les étapes mentionnées here (c'est pour Visual Studio Code, mais cela fonctionne pour Visual Studio 2017 et je suppose que cela devrait fonctionner pour toute application qui utilise le "officiel" Git pour Windows).
Pageant étant déjà installé et une clé privée .ppk créée, je n’avais qu’à faire utiliser Git à Pageant, en créant la variable d’environnement Windows GIT_SSH
et en lui attribuant le chemin du fichier "plink.exe" (dans l’installation de PuTTY, par exemple C:\Program Files (x86)\PuTTY\plink.exe
). Cela fait, il me suffit d'ouvrir Pageant et d'ajouter la clé privée (et de la laisser ouverte tout en travaillant avec le référentiel), et Visual Studio pourra se connecter et émettre des commandes sans problème.
il y a une autre façon, travaille pour moi.
semble que VS2017 exécute lui-même la connexion ssh, il ignore donc la clé ajoutée par ssh, et utilise uniquement la clé du chemin par défaut
Eh bien, je ne pouvais pas trouver le moyen direct de configurer le référentiel Git avec VS 2017 car l'option Cloner n'accepte que l'URI, pas le SSH.
J'ai fait ce qui suit:
En utilisant Git Bash pour générer les clés, vous pouvez trouver ici .
Dans VS2017
J'ai eu le même problème. J'ai essayé plusieurs méthodes de solution:
mais pas résolu mon problème . Et j'ai ouvert "Visual Studio Installer" et réparé . il a été résolu.
Cela a fonctionné pour moi (VS 2017/Win7):