VSCode: Wie ssh Remote-Verbindung zu Remote-WSL2
Ist es in VSCode möglich, Dateien in WSL2 eines Remote- PCs zu bearbeiten? (Dies ist wie eine Kombination aus Remote-WSL und Remote-SSH.) Ich kann über ssh und RDP eine Verbindung zu diesem Remote-PC herstellen.
Der Pfad \\wsl$\scheint in meiner Remote-SSH-Verbindung nicht verfügbar zu sein.
PCA - me, local, VSCode
^
|
ssh and/or RDP
|
V
PCB - remote, WSL2
(Ich habe derzeit Windows OpenSSH auf dem Remote-PC mit der Standard-CMD-Shell eingerichtet. Ich habe versucht, die Shell auf Bash zu setzen, aber dann wurde die Remote-Erweiterung nicht installiert.)
Update Wenn Sie die SSH-Server-Shell von PC-B so einstellen, bash.exe dass alle meine Probleme gelöst werden. Ich bin mir nicht sicher, warum es vorher nicht funktioniert hat. Siehe meine Antwort unten für weitere Details.
Antworten
Als ich meine eigene Frage beantwortete, war ich mir sicher, dass ich das schon einmal versucht hatte und es nicht funktioniert hatte, aber jetzt, wo ich es erneut versuche, funktioniert es. Vielleicht brauchte ich nur einen Neustart von Windows und WSL2.
- Aktivieren Sie den Windows SSH-Server auf PC-B und setzen Sie die Shell auf
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
Verwenden Sie Remote-SSH, um VSCode von PC-A mit PC-B zu verbinden (mithilfe von Windows-Anmeldeinformationen), und teilen Sie VSCode mit, dass es sich um einen Linux- Server handelt (da Sie innerhalb von WSL2 eine Verbindung zu bash.exe herstellen).
- Wenn Sie sich hinter einem Proxyserver befinden, fügen Sie den Proxy zu Ihrem hinzu
~/.wgetrc.
- Wenn Sie sich hinter einem Proxyserver befinden, fügen Sie den Proxy zu Ihrem hinzu
Voila.
Diese Schritte stammen aus THE EASY WAY, wie Sie von einem externen Computer, auf dem Sie weitere Details finden , SSH in Bash und WSL2 unter Windows 10 ausführen .
Wenn Sie eine Verbindung zur Remote-WSL herstellen möchten, sollten Sie diese wahrscheinlich so einrichten, dass sie selbst ausgeführt wird, sshdanstatt sich beim Tunneln auf das Hosten von Windows zu verlassen. Wenn ich Ihre Problemstellung richtig verstanden habe, scheint der Ablauf in einem der VS Code- Blog-Beiträge beschrieben zu sein . Hier werde ich Schritte erwähnen, von denen ich denke, dass Sie zu Ihrem Zielzustand gelangen müssen.
Deaktivieren Sie zunächst sshdWindows unter Remote-Status, damit Port 22 nicht belegt wird. Installieren und starten Sie dann im sshd Inneren 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
dann müssen Sie entweder auf Passwort - Logins aktivieren via ssh oder ( vorzugsweise ) erzeugen ein Schlüsselpaar und legen Sie Ihre öffentlichen Schlüssel in /home/your_name/.ssh/authorized_keysauf PCB.
Angenommen , Sie haben OpenSSH für Windows installiert ist (dies scheint der Client zu sein Remote - SSH beruht auf), auf der PCAFolge etwas wie folgt:
# 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
Achten Sie auf Berechtigungen: SSH-Schlüssel werden als geheim betrachtet, sodass weder Client noch Server gestartet werden, wenn Sie nicht alle Berechtigungen aus Ihrem Schlüsselmaterial löschen. Unter Linux chmod 600 .ssh/authorized_keysund unter Windows ssh-agentfolgen Sie den Anweisungen in dieser SE-Antwort .
Das Obige mag ein bisschen entmutigend erscheinen, ist aber in der Tat ein sehr normales SSH-Setup-Verfahren
einfache Schritte
- Aktualisieren Sie einfach Ihren vscode auf die neueste Version
- Installieren Sie das Remote Development-Erweiterungspaket
- WSL2-Verbindung in den Einstellungen zulassen
- wenn meine Antwort Ihnen bei der Abstimmung geholfen hat: D.