Cannot download VS Code Remote Development via SSH

In meinem Zimmer steht mein Entwickler- und Server System wo ganz brav Windows 10 Pro werkelt. Mit Oracle’s Virtueller Box läuft auch ein Debian System. Alles ganz nett und schon. Aber ich wollte meine Programmier-Spielereien etwas optimieren. Und um ehrlich zu sein – ich wollte was ausprobieren.

Bis jetzt habe ich meine Verzeichnisse per Freigabe auf meine anderen Rechner gezogen und so mit meinen IDE’s jeweils darauf zugegriffen. Mit Visual Studio Code gibt es die Möglichkeit, sich via ssh auf die jeweilige Maschine zu verbinden. Die klappt auch super, wenn auf dem Remote-System ein Linux werkelt. Aber wie sieht das aus, wenn ich mich auf ein Windows 10 verbinden möchte? Sollte doch eigentlich ganz einfach sein. Denkste!

Wie ich meine Stunden verbracht habe, das alles sauber zum laufen zu bringen, wollte ich der Welt dort draußen nicht vorenthalten.

Das erste was ich gemacht hab war das Hyper-V auf Windows 10 zu aktivieren. Danach habe ich das WSL/WSL2 mit einem Debian 10 Kernel installiert. Wie das geht – es gibt massig Anleitungen im Netz.

Nachdem alles sauber lief, installierte ich die Remote-SSH Extension für VS Code. Ich benutzte die Version 0.56.0. Meine Version von VS Code ist die 1.5.1.1. Schnell einen SSH Schlüssel erstellt und versucht, mich auf die Windows Maschine zu verbinden (OpenSSH muss natürlich auf der Remote Maschine laufen!).

Und genau hier fingen die Probleme an. Das WSL2 integriert sich bestens in ein laufendes Windows System. Dafür ist es ja von Microsoft entwickelt worden.

Meine Ausgabe im Log unter VS Code warf folgendes aus:

Installing to /home/andy/.vscode-server/bin/e5a624b788d92b8d34d1392e4c4d9789406efe8f...
Downloading with wget
wget download failed
wget: unable to resolve host address ‘update.code.visualstudio.com’
HOSTTYPE=x86_64
LANG=en_US.UTF-8
WSL_DISTRO_NAME=Debian

Irgendwie konnte er das Server Packet, welches VS Code braucht, nicht installieren. wget lief auf der Remote Seite ins leere.

Ein wget auf die besagte Seite direkt unter Debian ergab folgenden Fehler:

Connecting to update.code.visualstudio.com (update.code.visualstudio.com)|51.144.164.215|:443... connected.
ERROR: The certificate of ‘update.code.visualstudio.com’ is not trusted.
ERROR: The certificate of ‘update.code.visualstudio.com’ hasn't got a known issuer.
ERROR: Failed to download https://update.code.visualstudio.com/commit:41691474e5fa22a279d49fc4b58af66bc11ce41b/server-linux-x64/insider to /home/alex/.vscode-server-insiders/bin/41691474e5fa22a279d49fc4b58af66bc11ce41b-1561551093.tar.gz
Please install missing certificates.

Er hatte also ein Problem mit irgendwelche Zertifikaten. Kurzerhand folgende Datei angelegt (ob das jetzt die beste Variante ist, sei dahin gestellte) und mit Inhalt gefüllt:

vi .wgetrc in ~/.wgetrc
Inhalt bei mir:
use_proxy=on
check-certificate=off

Nun nochmals ein wget auf die Seite und er lud mir die index.html herunter. Super dachte ich und startete VS Code erneut. Wieder massig Fehler.
Nach langem probieren habe ich die Remote-SSH Extension auf Version 0.49.0 eingestellt.

Erneuter Versuch ging wieder schief. Gleicher Fehler wie zuvor.

Gut. Ab hier gibt es zweierlei Möglichkeiten es doch zum laufen zu bekommen.

Auf Debian in der WSL2 folgende machen:

sudo apt-get update und dann sudo apt-get install ca-certificates

ausführen. Danach folgende Schritte erledigen:

Unter Debian/Linux die commit id ermitteln.

$ ls ~/.vscode-server/bin
e5a624b788d92b8d34d1392e4c4d9789406efe8f

Download des tarballs. $COMMIT_ID mit der commit Nummer von oben ersetzen.

Stabile Version!

wget https://update.code.visualstudio.com/commit:$COMMIT_ID/server-linux-x64/stable

Dann den tarball nach ~/.vscode-server/bin/$COMMIT_ID/vscode-server-linux-x64.tar.gz
verschieben und wie folgt entpacken (Achtung: Bei mir hieß das stable) 

$ cd ~/.vscode-server/bin/$COMMIT_ID
$ tar -xvzf vscode-server-linux-x64.tar.gz --strip-components 1

 

Nun sollte eine ssh Verbindung zu Windows 10 mit VS Code gehen. Ich werde es weiterhin Testen und hier berichten, was ich wie wo herausgefunden habe. Vielleicht hat jemand eine andere oder bessere Lösung. Einfach einen Kommentar da lassen.

Filed under: Making things, Server

No comment yet, add your voice below!


Add a Comment