web-dev-qa-db-fra.com

Connectez-vous au référentiel Git avec SSH à l'aide de Visual Studio 2017

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

8
Trisibo

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.

14
Trisibo

il y a une autre façon, travaille pour moi.

  1. connectez-vous au référentiel Git utilisez un autre client ssh, comme ssh.exe. accepter la connexion. il générera un fichier known_hosts.
  2. copier le fichier known_hosts et le fichier id_rsa dans C:\Users\[UserName] \. ssh \
  3. Terminé. même sans start-ssh-agent.

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

4
Raven

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:

  1. La clé SSH générée à l’aide de Git Bash et la synchronisation du serveur Git avec les clés générées par Git bash. Vous devriez donner la clé publique sous Paramètres.
  2. Client Sourcetree téléchargé et configuré avec la clé SSH Options-> Général-> Configuration du client SSH -> Besoin de donner la clé privée générée par Git bash 
  3. Clonez le client à l'aide de l'arborescence source et ouvrez la même solution à partir de Visual Studio. Push/Pull fonctionnera normalement.

En utilisant Git Bash pour générer les clés, vous pouvez trouver ici

1
Rahul Shanbhag

Dans VS2017

J'ai eu le même problème. J'ai essayé plusieurs méthodes de solution:

  1. Suppression de "git pour Windows" dans le programme d'installation de Visual Studio et suppression de git dans le panneau de configuration.
  2. Installé deux d'entre eux.
  3. essayé quelques réglages ssh

mais pas résolu mon problème . Et j'ai ouvert "Visual Studio Installer" et réparé . il a été résolu.

0
Ahmet İCAT

Cela a fonctionné pour moi (VS 2017/Win7):

  1. J'ai installé git-scm et je l'ai connecté. 
  2. Fait (rien à copier, ça marche juste)
0
ndberg