VSCode: como conectar remotamente o ssh ao WSL2 remoto
É 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
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.
- Habilite o servidor SSH do Windows no PC-B e defina o shell para ser
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
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.
- Se você estiver atrás de um servidor proxy, adicione o proxy ao seu arquivo
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.
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
passos fáceis
- apenas atualize seu vscode para a versão mais recente
- instalar pacote de extensão de desenvolvimento remoto
- permitir conexão WSL2 nas configurações
- se minha resposta te ajudou votei :D