VSCode: comment se connecter à distance SSH à WSL2 distant

Aug 25 2020

Est-il possible dans VSCode d'éditer des fichiers dans WSL2 d'un PC distant . (C'est comme une combinaison de Remote-WSL et Remote-SSH.) Je peux me connecter à ce PC distant via ssh et RDP.

Le chemin \\wsl$\ne semble pas être disponible dans ma connexion remote-ssh.

PCA - me, local, VSCode
^
|
ssh and/or RDP
|
V
PCB - remote, WSL2

(J'ai actuellement Windows OpenSSH configuré sur le PC distant, avec le shell CMD par défaut. J'ai essayé de définir le shell sur Bash mais l'extension distante ne s'est pas installée.)

Mise à jour du shell du serveur ssh de réglage PC-B pour bash.exe ne résoudre tous mes problèmes. Je ne sais pas pourquoi cela n'a pas fonctionné avant. Voir ma réponse ci-dessous pour plus de détails.

Réponses

4 Mort Sep 23 2020 at 01:10

En répondant à ma propre question, j'étais certain que j'avais déjà essayé cela et que cela n'avait pas fonctionné, mais maintenant que je réessaye, cela fonctionne. Peut-être que j'avais juste besoin d'un redémarrage de Windows et WSL2.

  1. Activez le serveur Windows SSH sur PC-B et définissez le shell sur bash.exe
# Powershell as Administrator
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Set-Service -Name sshd -StartupType 'Automatic'
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\WINDOWS\System32\bash.exe" -PropertyType String -Force
  1. À l'aide de Remote-SSH, connectez VSCode de PC-A à PC-B (en utilisant les informations d'identification Windows) et indiquez à VSCode qu'il s'agit d'un serveur Linux (car vous vous connectez à bash.exe dans WSL2).

    • Si vous êtes derrière un serveur proxy, ajoutez le proxy à votre ~/.wgetrc.
  2. Voila.


Ces étapes sont tirées de LA FAÇON FACILE de SSH dans Bash et WSL2 sur Windows 10 à partir d'une machine externe sur laquelle vous pouvez trouver plus de détails.

2 timur Sep 16 2020 at 07:25

Si vous souhaitez vous connecter à WSL distant, vous devez probablement le configurer pour qu'il s'exécute lui-même sshdau lieu de compter sur l'hébergement de Windows pour effectuer le tunneling. Si j'ai bien compris votre énoncé de problème, le flux semble être décrit dans l'un des articles de blog VS Code . Ici, je vais mentionner les étapes dont je pense que vous aurez besoin pour atteindre votre état cible.

Tout d'abord, désactivez sshdsur Windows distant pour qu'il n'occupe pas le port 22. puis installez et démarrez à l' sshd intérieur PCB :

# from PCB command prompt
# something like that, depending on your choice of distro
sudo apt remove openssh-server && sudo apt install openssh-server
# this would again depend on your chosen distro
sudo /etc/init.d/ssh start # after i do this - windows pops up a firewall prompt to allow me create a rule. you might need to add it manually

alors vous aurez besoin soit de permettre les connexions de mot de passe via ssh ou ( de préférence ) générer une paire de clés et de mettre votre clé publique dans /home/your_name/.ssh/authorized_keysle PCB.

En supposant que OpenSSH pour Windows soit installé (cela semble être le client sur lequel s'appuie Remote SSH ), PCAsuivez quelque chose comme ceci:

# something along these lines on your PCA
PS C:\WINDOWS\system32>ssh-keygen
# note location of .pub file and copy its contents into remote ./ssh/authorized_keys
# add generated private key to ssh-agent service
PS C:\WINDOWS\system32> Start-Service ssh-agent # if this fails - ensure service is installed and enabled
PS C:\WINDOWS\system32> ssh-add path\to\your\private_key # ensure you have dropped all permission except your own user

Attention aux autorisations: les clés ssh sont considérées comme secrètes, donc ni le client ni le serveur ne démarrent à moins que vous supprimiez toutes les autorisations de votre matériel de clé. Sur Linux chmod 600 .ssh/authorized_keys, et pour Windows, ssh-agentsuivez les instructions de cette réponse SE .

Ce qui précède peut sembler un peu intimidant, mais il s'agit en fait d'une procédure de configuration SSH très standard

ElMobark Sep 22 2020 at 08:40

étapes faciles

  1. mettez simplement à jour votre vscode vers la dernière version
  2. installer le pack d'extension de développement à distance
  3. autoriser la connexion WSL2 dans les paramètres
  4. si ma réponse vous a aidé a voté pour: D