VSCode: como conectar remotamente o ssh ao WSL2 remoto

Aug 25 2020

É possível no VSCode editar arquivos no WSL2 de um PC remoto . (Isso é como uma combinação de Remote-WSL e Remote-SSH.) Posso me conectar a esse PC remoto via ssh e RDP.

O caminho \\wsl$\não parece estar disponível na minha conexão ssh remota.

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

(Atualmente, tenho o Windows OpenSSH configurado no PC remoto, com o shell CMD padrão. Tentei configurar o shell como Bash, mas a extensão remota não foi instalada.)

Atualizar bash.exe a configuração do shell do servidor ssh do PC-B para resolver todos os meus problemas. Não sei por que não funcionou antes. Veja minha resposta abaixo para mais detalhes.

Respostas

4 Mort Sep 23 2020 at 01:10

Respondendo à minha própria pergunta , eu tinha certeza de que já havia tentado isso antes e não funcionou, mas agora que tentei novamente, funcionou. Talvez eu só precisasse reiniciar o Windows e o WSL2.

  1. Habilite o servidor SSH do Windows no PC-B e defina o shell para serbash.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. Usando o Remote-SSH, conecte o VSCode do PC-A ao PC-B (usando as credenciais do Windows) e diga ao VSCode que é um servidor linux (porque você está se conectando ao bash.exe no WSL2).

    • Se você estiver atrás de um servidor proxy, adicione o proxy ao seu arquivo ~/.wgetrc.
  2. Voilá.


Estas etapas foram tiradas do THE EASY WAY como fazer SSH em Bash e WSL2 no Windows 10 de uma máquina externa onde você pode encontrar mais detalhes.

2 timur Sep 16 2020 at 07:25

Se você deseja se conectar ao WSL remoto, provavelmente deve configurá-lo para ser executado sshdem vez de depender da hospedagem do Windows para fazer o tunelamento. Se entendi corretamente a declaração do seu problema, o fluxo parece estar descrito em uma das postagens do blog do VS Code . Aqui, mencionarei as etapas que acho que você precisará para chegar ao seu estado de destino.

Em primeiro lugar, desative sshdo Windows remoto para que não ocupe a porta 22. Em seguida, instale e inicie sshd dentro PCB de :

# 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

então você precisa habilitar logins de senha via ssh ou (de preferência ) gerar um par de chaves e colocar sua chave pública em /home/your_name/.ssh/authorized_keyson PCB.

Supondo que você tenha o OpenSSH para Windows instalado (este parece ser o cliente do qual o Remote SSH depende), PCAsiga algo assim:

# 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

Cuidado com as permissões: as chaves ssh são consideradas secretas, portanto, nem o cliente nem o servidor serão iniciados, a menos que você remova todas as permissões de seu material de chave. No linux chmod 600 .ssh/authorized_keys, e no Windows, ssh-agentsiga as instruções desta resposta do SE .

O descrito acima pode parecer um pouco assustador, mas na verdade é um procedimento de configuração SSH muito padrão

ElMobark Sep 22 2020 at 08:40

passos fáceis

  1. apenas atualize seu vscode para a versão mais recente
  2. instalar pacote de extensão de desenvolvimento remoto
  3. permitir conexão WSL2 nas configurações
  4. se minha resposta te ajudou votei :D