VSCode: come connettersi in remoto tramite ssh a WSL2 remoto
È possibile in VSCode modificare i file all'interno di WSL2 di un PC remoto . (È come una combinazione di Remote-WSL e Remote-SSH.) Posso connettermi a quel PC remoto tramite ssh e RDP.
Il percorso \\wsl$\non sembra essere disponibile nella mia connessione remote-ssh.
PCA - me, local, VSCode
^
|
ssh and/or RDP
|
V
PCB - remote, WSL2
(Al momento ho Windows OpenSSH configurato sul PC remoto, con la shell CMD predefinita. Ho provato a impostare la shell su Bash ma l'estensione remota non si installa.)
Aggiorna L'impostazione della shell del server ssh di PC-B su bash.exe risolve tutti i miei problemi. Non sono sicuro del motivo per cui non ha funzionato prima. Vedi la mia risposta qui sotto per maggiori dettagli.
Risposte
Rispondendo alla mia stessa domanda ero certo di averlo provato prima e non aveva funzionato, ma ora che lo riprovo funziona. Forse avevo solo bisogno di un riavvio di Windows e WSL2.
- Abilita il server Windows SSH su PC-B e imposta la shell su be
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 Remote-SSH connetti VSCode da PC-A a PC-B (usando le credenziali di Windows) e comunica a VSCode che si tratta di un server Linux (perché ti stai connettendo a bash.exe all'interno di WSL2).
- Se sei dietro un server proxy, aggiungi il proxy al tuo file
~/.wgetrc.
- Se sei dietro un server proxy, aggiungi il proxy al tuo file
Ecco.
Questi passaggi presi da THE EASY WAY come accedere a SSH in Bash e WSL2 su Windows 10 da un computer esterno dove puoi trovare maggiori dettagli.
Se vuoi connetterti a WSL remoto, probabilmente dovresti configurarlo per l'esecuzione da solo sshdinvece di fare affidamento sull'hosting di Windows per eseguire il tunneling. Se ho capito bene la tua dichiarazione del problema, il flusso sembra essere delineato in uno dei post del blog di VS Code . Qui menzionerò i passaggi che penso ti serviranno per raggiungere il tuo stato target.
Innanzitutto, disabilita sshdsu Windows remoto in modo che non occupi la porta 22. quindi, installa e avvia sshd all'interno 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
quindi dovresti abilitare gli accessi con password tramite ssh o ( preferibilmente ) generare una coppia di chiavi e inserire la tua chiave pubblica in /home/your_name/.ssh/authorized_keyson PCB.
Supponendo che tu abbia installato OpenSSH per Windows (questo sembra essere il client su cui si basa SSH remotoPCA ), segui qualcosa del genere:
# 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
Fai attenzione ai permessi: le chiavi ssh sono considerate segrete, quindi né il client né il server si avviano a meno che tu non elimini tutti i permessi dal materiale della tua chiave. Su Linux chmod 600 .ssh/authorized_keys, e per Windows ssh-agentsegui le istruzioni da questa risposta SE .
Quanto sopra può sembrare un po' scoraggiante, ma in realtà è una procedura di configurazione SSH molto standard
facili passaggi
- basta aggiornare il vscode all'ultima versione
- installare il pacchetto di estensione per lo sviluppo remoto
- consentire la connessione WSL2 nelle impostazioni
- se la mia risposta ti ha aiutato votato a favore: D