3
votes

Comment obtenir l'extension vscode-remote-ssh se connecte via git bash dans Windows?

J'ai configuré vs code pour utiliser git bash comme terminal dans Windows 7.
"terminal.integrated.shell.windows": "C: \ Program Files \ Git \ bin \ bash.exe"

J'ai activé l'authentification par clé SSH pour accéder à distance à un hôte. Tout cela fonctionne bien depuis le terminal dans VS Code.

Cependant, lorsque j'utilise l'extension SSH vscode-remote pour me connecter à l'hôte, j'obtiens une erreur car il essaie de se connecter en utilisant "La commande de processus terminal 'cmd.exe'" au lieu de git bash.

J'ai vérifié la configuration de mes paramètres de terminal dans vs code et cela pointe vers git bash.exe

J'ai utilisé l'extension de terminal dans vs code et il ouvre un git bash et se connecte avec succès à l'hôte

Y a-t-il un paramètre qui me manque pour forcer Remote-SSH à utiliser git bash pour la connexion?


1 commentaires

pourrait être plus rapide d'ajouter et d'installer un client SSH compatible OpenSSH dans votre invite de commande?


3 Réponses :


1
votes

J'ai rencontré un problème similaire en essayant de faire fonctionner MS VS Code Studio Remote-SSH avec Putty's Pageant. J'avais installé Git pour Windows et dans un shell Git Bash, je pouvais ssh et récupérer les clés Pageant et aucun mot de passe n'était nécessaire.

Mais VS Code Remote-SSH, lors de l'utilisation de Git ssh dans C: \ Program Files \ Git \ usr \ bin \ ssh.exe utilisait le shell Windows 7 cmd.exe qui ne le faisait pas parler à Pageant.

Ce qui a fonctionné pour moi sur Windows 7, VS Code 1.36.1 avec (Remote Development 0.15.0, Remote-SSH 0.44.0) et Git pour Windows 2.22:

  1. Démarrez Pageant (C: \ Program Files \ PuTTY \ pageant.exe) et ajoutez une clé.
  2. Démarrez le shim de l'agent ssh (C: \ Program Files \ Git \ cmd \ start-ssh-pageant.cmd). Cela prend en charge la communication entre Git ssh, qui recherche ssh-agent, et Pageant.
  3. Créez la variable d'environnement SSH_AUTH_SOCK
    1. Panneau de configuration / Système / Paramètres avancés / Variables d'environnement ..
    2. Variables utilisateur pour nom d'utilisateur / Nouveau .. :
  4. Test ssh:
    1. Ouvrez une invite de commande: saisissez set pour afficher la liste des variables d'environnement. La variable SSH_AUTH_SOCK est-elle correctement définie sur quelque chose comme /tmp/.ssh-pageant-bill?
    2. Essayez ssh sur votre hôte en utilisant ssh.exe de Git: c: \ Program Files \ Git \ usr \ bin \ ssh.exe user @ host Si cela fonctionne, alors VS Code Remote-SSH devrait travail.

Enfin, j'ai ajouté Pageant et start-ssh-pageant.cmd à mon démarrage Windows 7 afin que cela persiste lors des redémarrages.

J'espère que cela vous aidera.

Jerry.


0 commentaires

4
votes

La réponse de JerryL m'amène à réaliser que je peux simplement définir le chemin ssh de GIT c: \ Program Files \ Git \ usr \ bin \ ssh.exe dans le remote.SSH.path réglage des préférences de VS Code:

 entrez la description de l'image ici

Ensuite, cela a fonctionné comme un charme.

Pour plus de clarté, ma version VS Code est: 1.40.0-insider (configuration du système)


0 commentaires

1
votes

J'ai rencontré un problème similaire en essayant d'utiliser Putty Pageant avec VS Code Remote.

1. Créez un fichier .bat quelque part avec le contenu suivant:

echo OpenSSH
"C:\YOUR_PATH_HERE\PLINK.EXE" -ssh %*

2. Ouvrez les paramètres de code VS, saisissez le chemin SSH distant dans la recherche et recherchez Remote.SSH: Paramètres du chemin
3. Passez ici le chemin de votre fichier .bat
4. À présent, VS Code Remote utilisera correctement Pageant.


1 commentaires

Malheureusement, cela ne fonctionne pas pour les ports SSH personnalisés. ssh.exe attend -p XXXX et plink.exe attend le capital -P xxxx . Un deuxième problème est que vous devez exécuter manuellement la commande générée en dehors de VSC la première fois pour accepter l'enregistrement de la clé d'empreinte digitale. Vous pouvez probablement contourner celui-ci en changeant la ligne du fichier bat en echo y | "C: \ YOUR_PATH_HERE \ PLINK.EXE" -ssh% *