Remote-Entwicklung via SSH
Die Erweiterung Visual Studio Code Remote - SSH ermöglicht es Ihnen, einen Remote-Ordner auf jeder beliebigen Remote-Maschine, virtuellen Maschine oder einem Container mit einem laufenden SSH-Server zu öffnen und den vollen Funktionsumfang von VS Code zu nutzen. Sobald Sie mit einem Server verbunden sind, können Sie mit Dateien und Ordnern überall auf dem Remote-Dateisystem interagieren.
Es muss kein Quellcode auf Ihrer lokalen Maschine vorhanden sein, um diese Vorteile zu nutzen, da die Erweiterung Befehle und andere Erweiterungen direkt auf der Remote-Maschine ausführt. Die Erweiterung installiert den VS Code Server auf dem Remote-Betriebssystem; der Server ist unabhängig von einer bereits vorhandenen VS Code-Installation auf dem Remote-System.

Dadurch bietet VS Code eine Entwicklungserfahrung in lokaler Qualität – einschließlich vollständigem IntelliSense (Vervollständigungen), Codenavigation und Debugging – unabhängig davon, wo Ihr Code gehostet wird.
Erste Schritte
Hinweis: Nachdem Sie dieses Thema durchgegangen sind, können Sie mit dem einführenden SSH-Tutorial beginnen.
Systemanforderungen
Lokal: Ein unterstützter OpenSSH-kompatibler SSH-Client muss ebenfalls installiert sein.
Remote-SSH-Host: Ein laufender SSH-Server auf
- x86_64 Debian 8+, Ubuntu 16.04+, CentOS / RHEL 7+.
- ARMv7l (AArch32) Raspberry Pi OS (früher Raspbian genannt) Stretch/9+ (32-Bit).
- ARMv8l (AArch64) Ubuntu 18.04+ (64-Bit).
- Windows 10 / Server 2016/2019 (1803+) unter Verwendung des offiziellen OpenSSH-Servers.
- macOS 10.14+ (Mojave) SSH-Hosts mit aktiviertem Remote-Login.
- Für Remote-Hosts ist 1 GB RAM erforderlich, empfohlen werden jedoch mindestens 2 GB RAM und eine 2-Kern-CPU.
Andere glibc-basierte Linux-Distributionen für x86_64, ARMv7l (AArch32) und ARMv8l (AArch64) sollten funktionieren, sofern sie die erforderlichen Voraussetzungen erfüllen. Lesen Sie den Artikel Remote-Entwicklung mit Linux für Informationen zu Voraussetzungen und Tipps zum Einrichten von Community-unterstützten Distributionen.
Obwohl Unterstützung für ARMv7l (AArch32) und ARMv8l (AArch64) verfügbar ist, funktionieren einige auf diesen Geräten installierte Erweiterungen möglicherweise nicht, da sie x86-nativen Code verwenden.
Installation
Um zu beginnen, müssen Sie
-
Einen OpenSSH-kompatiblen SSH-Client installieren, falls dieser noch nicht vorhanden ist.
-
Visual Studio Code oder Visual Studio Code Insiders installieren.
-
Die Remote-SSH-Erweiterung installieren. Wenn Sie beabsichtigen, mit anderen Remote-Erweiterungen in VS Code zu arbeiten, können Sie das Remote Development Extension Pack installieren.
SSH-Host-Einrichtung
-
Wenn Sie keinen SSH-Host eingerichtet haben, folgen Sie den Anweisungen für Linux, Windows 10 / Server (1803+) oder macOS SSH-Hosts oder erstellen Sie eine VM auf Azure.
-
Optional: Wenn auf Ihren Linux- oder macOS-SSH-Host mehrere Benutzer gleichzeitig zugreifen, ziehen Sie für eine verbesserte Sicherheit in Betracht, Remote.SSH: Remote Server Listen On Socket in den VS Code Benutzereinstellungen zu aktivieren.
Im Einstellungs-Editor

Einzelheiten finden Sie im Artikel Tipps und Tricks.
-
Optional: Obwohl passwortbasierte Authentifizierung unterstützt wird, empfehlen wir die Einrichtung einer schlüsselbasierten Authentifizierung für Ihren Host. Einzelheiten finden Sie im Artikel Tipps und Tricks.
Verbindung zu einem Remote-Host herstellen
Um zum ersten Mal eine Verbindung zu einem Remote-Host herzustellen, führen Sie diese Schritte aus
-
Überprüfen Sie, ob Sie eine Verbindung zum SSH-Host herstellen können, indem Sie den folgenden Befehl in einem Terminal- / PowerShell-Fenster ausführen und dabei
user@hostnameentsprechend ersetzen.ssh user@hostname # Or for Windows when using a domain / AAD account ssh user@domain@hostname -
Wählen Sie in VS Code Remote-SSH: Connect to Host... aus der Befehlspalette (F1, ⇧⌘P (Windows, Linux Ctrl+Shift+P)) und verwenden Sie dasselbe
user@hostnamewie in Schritt 1.
-
Wenn VS Code den Typ des Servers, mit dem Sie sich verbinden, nicht automatisch erkennen kann, werden Sie aufgefordert, den Typ manuell auszuwählen.

Sobald Sie eine Plattform ausgewählt haben, wird diese in den VS Code-Einstellungen unter der Eigenschaft
remote.SSH.remotePlatformgespeichert, sodass Sie sie jederzeit ändern können. -
Nach einem Moment verbindet sich VS Code mit dem SSH-Server und richtet sich ein. VS Code hält Sie über eine Fortschrittsbenachrichtigung auf dem Laufenden, und Sie können ein detailliertes Protokoll im Ausgabekanal
Remote - SSHeinsehen.Tipp: Verbindung hängt oder schlägt fehl? Siehe Tipps zur Fehlerbehebung für Informationen zur Lösung häufiger Probleme.
Wenn Sie Fehler bezüglich SSH-Dateiberechtigungen sehen, lesen Sie den Abschnitt über Beheben von Fehlern bei SSH-Dateiberechtigungen.
-
Nachdem Sie verbunden sind, befinden Sie sich in einem leeren Fenster. Sie können jederzeit in der Statusleiste sehen, mit welchem Host Sie verbunden sind.

Ein Klick auf das Statusleistenelement bietet eine Liste von Remote-Befehlen, während Sie verbunden sind.
-
Sie können dann jeden Ordner oder Arbeitsbereich auf der Remote-Maschine mit Datei > Öffnen... oder Datei > Arbeitsbereich öffnen... öffnen, genau wie Sie es lokal tun würden!

Von hier aus können Sie alle Erweiterungen installieren, die Sie bei der Verbindung mit dem Host verwenden möchten, und mit der Bearbeitung beginnen!
Hinweis: Auf ARMv7l / ARMv8l
glibcSSH-Hosts funktionieren einige Erweiterungen möglicherweise nicht aufgrund von x86-kompiliertem nativem Code innerhalb der Erweiterung.
Öffnen eines Ordners auf einem Remote-SSH-Host in einem Container
Wenn Sie einen Linux- oder macOS-SSH-Host verwenden, können Sie die Erweiterungen Remote - SSH und Dev Containers zusammen verwenden, um einen Ordner auf Ihrem Remote-Host innerhalb eines Containers zu öffnen. Sie müssen nicht einmal lokal einen Docker-Client installiert haben.
Um dies zu tun
- Folgen Sie den Installationsschritten zur Installation von Docker auf Ihrem Remote-Host und von VS Code sowie der Dev Containers-Erweiterung lokal.
- Optional: Richten Sie eine SSH- schlüsselbasierte Authentifizierung zum Server ein, damit Sie Ihr Passwort nicht mehrmals eingeben müssen.
- Folgen Sie dem Schnellstart für die Remote - SSH-Erweiterung, um eine Verbindung zu einem Host herzustellen und dort einen Ordner zu öffnen.
- Verwenden Sie den Befehl Dev Containers: In Container neu öffnen aus der Befehlspalette (F1, ⇧⌘P (Windows, Linux Ctrl+Shift+P)).
Der Rest des Dev Containers-Schnellstarts gilt unverändert. Mehr über die Dev Containers-Erweiterung erfahren Sie in der Dokumentation. Sie können auch den Artikel Entwickeln auf einem Remote-Docker-Host für weitere Optionen lesen, falls dieses Modell Ihren Anforderungen nicht entspricht.
Verbindung zu einem Remote-Host trennen
Um die Verbindung zu schließen, wenn Sie mit der Bearbeitung von Dateien auf dem Remote-Host fertig sind, wählen Sie Datei > Remote-Verbindung schließen, um die Verbindung zum Host zu trennen. Die Standardkonfiguration enthält keine Tastenkombination für diesen Befehl. Sie können VS Code auch einfach beenden, um die Remote-Verbindung zu schließen.
Hosts und erweiterte Einstellungen speichern
Wenn Sie eine Reihe von Hosts haben, die Sie häufig verwenden, oder wenn Sie eine Verbindung zu einem Host mit einigen zusätzlichen Optionen herstellen müssen, können Sie diese zu einer lokalen Datei hinzufügen, die dem SSH-Konfigurationsdateiformat folgt.
Um die Einrichtung zu erleichtern, kann die Erweiterung Sie durch das Hinzufügen eines Hosts führen, ohne dass Sie diese Datei manuell bearbeiten müssen.
Beginnen Sie mit der Auswahl von Remote-SSH: Add New SSH Host... aus der Befehlspalette (F1, ⇧⌘P (Windows, Linux Ctrl+Shift+P)) oder durch Klicken auf das Add New-Symbol im SSH Remote Explorer in der Aktivitätsleiste.

Sie werden dann aufgefordert, die SSH-Verbindungsinformationen einzugeben. Sie können entweder einen Hostnamen eingeben

Oder den vollständigen ssh-Befehl, den Sie verwenden würden, um sich von der Befehlszeile aus mit dem Host zu verbinden

Schließlich werden Sie aufgefordert, eine Konfigurationsdatei zur Verwendung auszuwählen. Sie können auch die Eigenschaft "remote.SSH.configFile" in Ihrer Benutzer-settings.json-Datei festlegen, wenn Sie eine andere Konfigurationsdatei als die aufgelisteten verwenden möchten. Die Erweiterung erledigt den Rest!
Wenn Sie beispielsweise ssh -i ~/.ssh/id_rsa-remote-ssh yourname@remotehost.yourcompany.com in das Eingabefeld eingeben, wird dieser Eintrag generiert
Host remotehost.yourcompany.com
User yourname
HostName another-host-fqdn-or-ip-goes-here
IdentityFile ~/.ssh/id_rsa-remote-ssh
Siehe Tipps und Tricks für Details zum Generieren des hier gezeigten Schlüssels. Sie können diese Datei manuell mit allem bearbeiten, was das SSH-Konfigurationsdateiformat unterstützt, dies ist also nur ein Beispiel.
Ab diesem Zeitpunkt erscheint der Host in der Liste der Hosts, wenn Sie Remote-SSH: Connect to Host... aus der Befehlspalette (F1, ⇧⌘P (Windows, Linux Ctrl+Shift+P)) wählen oder im Bereich SSH Targets des Remote Explorer.

Der Remote Explorer ermöglicht es Ihnen, entweder ein neues leeres Fenster auf dem Remote-Host zu öffnen oder direkt einen Ordner zu öffnen, den Sie zuvor geöffnet haben. Erweitern Sie den Host und klicken Sie auf das Symbol Ordner öffnen neben dem Ordner, den Sie auf dem Host öffnen möchten.

Verwalten von Erweiterungen
VS Code führt Erweiterungen an einem von zwei Orten aus: lokal auf der UI-/Client-Seite oder remote auf dem SSH-Host. Während Erweiterungen, die die VS Code-UI beeinflussen, wie Designs und Snippets, lokal installiert werden, befinden sich die meisten Erweiterungen auf dem SSH-Host. Dies stellt sicher, dass Sie ein reibungsloses Erlebnis haben und ermöglicht es Ihnen, alle benötigten Erweiterungen für einen bestimmten Arbeitsbereich auf einem SSH-Host von Ihrer lokalen Maschine aus zu installieren. Auf diese Weise können Sie genau dort weitermachen, wo Sie aufgehört haben, von einer anderen Maschine aus, komplett mit Ihren Erweiterungen.
Wenn Sie eine Erweiterung über die Erweiterungsansicht installieren, wird sie automatisch am richtigen Ort installiert. Nach der Installation können Sie anhand der Kategoriegruppierung erkennen, wo eine Erweiterung installiert ist.
Es gibt eine Kategorie für Ihren Remote-SSH-Host

Und auch eine Kategorie Lokal - Installiert

Hinweis: Wenn Sie ein Erweiterungsautor sind und feststellen, dass Ihre Erweiterung nicht ordnungsgemäß funktioniert oder am falschen Ort installiert wird, lesen Sie Unterstützung der Remote-Entwicklung für Einzelheiten.
Lokale Erweiterungen, die tatsächlich remote ausgeführt werden müssen, erscheinen abgeblendet und deaktiviert in der Kategorie Lokal - Installiert. Wählen Sie Installieren, um eine Erweiterung auf Ihrem Remote-Host zu installieren.

Sie können auch alle lokal installierten Erweiterungen auf dem SSH-Host installieren, indem Sie zur Erweiterungsansicht gehen und Lokale Erweiterungen in SSH installieren: {Hostname} über das Cloud-Symbol rechts neben der Titelleiste Lokal - Installiert auswählen. Dies zeigt ein Dropdown-Menü, in dem Sie auswählen können, welche lokal installierten Erweiterungen auf Ihrem SSH-Host installiert werden sollen.
"Immer installiert"-Erweiterungen
Wenn es Erweiterungen gibt, die Sie immer auf jedem SSH-Host installiert haben möchten, können Sie festlegen, welche dies sein sollen, indem Sie die Eigenschaft remote.SSH.defaultExtensions in der settings.json verwenden. Wenn Sie beispielsweise die Erweiterungen GitLens und Resource Monitor installieren möchten, geben Sie deren Erweiterungs-IDs wie folgt an
"remote.SSH.defaultExtensions": [
"eamodio.gitlens",
"mutantdino.resourcemonitor"
]
Fortgeschritten: Erzwingen, dass eine Erweiterung lokal / remote ausgeführt wird
Erweiterungen werden normalerweise so entwickelt und getestet, dass sie entweder lokal oder remote ausgeführt werden, nicht beides. Wenn eine Erweiterung dies jedoch unterstützt, können Sie sie in Ihrer settings.json-Datei erzwingen, an einem bestimmten Speicherort auszuführen.
Zum Beispiel erzwingt die folgende Einstellung die lokale Ausführung der Erweiterung Container Tools und die remote Ausführung der Erweiterung Remote - SSH: Konfigurationsdateien bearbeiten anstelle ihrer Standardwerte
"remote.extensionKind": {
"ms-azuretools.vscode-containers": [ "ui" ],
"ms-vscode-remote.remote-ssh-edit": [ "workspace" ]
}
Ein Wert von "ui" anstelle von "workspace" erzwingt, dass die Erweiterung stattdessen auf der lokalen UI-/Client-Seite ausgeführt wird. Dies sollte normalerweise nur zu Testzwecken verwendet werden, sofern in der Dokumentation der Erweiterung nichts anderes angegeben ist, da es Erweiterungen beschädigen kann. Siehe den Artikel über Unterstützung der Remote-Entwicklung für Details.
Port weiterleiten / SSH-Tunnel erstellen
Manchmal müssen Sie bei der Entwicklung auf einen Port auf einer Remote-Maschine zugreifen, der nicht öffentlich zugänglich ist. Es gibt zwei Möglichkeiten, dies mithilfe eines SSH-Tunnels zu tun, der den gewünschten Remote-Port an Ihre lokale Maschine "weiterleitet".
Einen Port temporär weiterleiten
Sobald Sie mit einem Host verbunden sind, wenn Sie einen neuen Port für die Dauer der Sitzung temporär weiterleiten möchten, wählen Sie Port weiterleiten aus der Befehlspalette (F1, ⇧⌘P (Windows, Linux Ctrl+Shift+P)) oder wählen Sie die Schaltfläche Port hinzufügen in der Ports-Ansicht. Sie können die Ports-Ansicht im unteren Bereich sehen oder durch Ausführen des Befehls Ports: Fokus auf Ports-Ansicht.

Sie werden aufgefordert, den Port einzugeben, den Sie weiterleiten möchten, und können ihm einen Namen geben.

Eine Benachrichtigung teilt Ihnen mit, welchen Localhost-Port Sie verwenden sollten, um auf den Remote-Port zuzugreifen. Wenn Sie beispielsweise einen HTTP-Server weitergeleitet haben, der auf Port 3000 lauscht, teilt Ihnen die Benachrichtigung möglicherweise mit, dass er auf Port 4123 auf localhost abgebildet wurde, da 3000 bereits belegt war. Sie können dann eine Verbindung zu diesem Remote-HTTP-Server über https://:4123 herstellen.
Dieselben Informationen sind im Bereich Weitergeleitete Ports des Remote Explorer verfügbar, falls Sie später darauf zugreifen müssen.
Wenn Sie möchten, dass sich VS Code an alle weitergeleiteten Ports erinnert, aktivieren Sie Remote: Restore Forwarded Ports im Einstellungs-Editor (⌘, (Windows, Linux Ctrl+,)) oder setzen Sie "remote.restoreForwardedPorts": true in der settings.json.

Lokalen Port im Tunnel ändern
Wenn Sie möchten, dass der lokale Port des Tunnels ein anderer als der des Remote-Servers ist, können Sie dies über das Panel Weitergeleitete Ports ändern.
Klicken Sie mit der rechten Maustaste auf den Tunnel, den Sie ändern möchten, und wählen Sie Lokalen Adress-Port ändern im Kontextmenü.

Einen Port immer weiterleiten
Wenn Sie Ports haben, die Sie immer weiterleiten möchten, können Sie die LocalForward-Direktive in derselben SSH-Konfigurationsdatei verwenden, die Sie zum Speichern von Hosts und erweiterten Einstellungen verwenden.
Wenn Sie beispielsweise die Ports 3000 und 27017 weiterleiten möchten, könnten Sie die Datei wie folgt aktualisieren
Host remote-linux-machine
User myuser
HostName remote-linux-machine.mydomain
LocalForward 127.0.0.1:3000 127.0.0.1:3000
LocalForward 127.0.0.1:27017 127.0.0.1:27017
Terminal auf einem Remote-Host öffnen
Das Öffnen eines Terminals auf dem Remote-Host von VS Code aus ist einfach. Sobald die Verbindung hergestellt ist, wird jedes Terminalfenster, das Sie in VS Code öffnen (Terminal > Neues Terminal), automatisch auf dem Remote-Host statt lokal ausgeführt.
Sie können auch die code-Befehlszeile von demselben Terminalfenster aus verwenden, um eine Reihe von Vorgängen auszuführen, wie z. B. das Öffnen einer neuen Datei oder eines neuen Ordners auf dem Remote-Host. Geben Sie code --help ein, um alle Optionen zu sehen, die über die Befehlszeile verfügbar sind.

Debugging auf dem SSH-Host
Sobald Sie mit einem Remote-Host verbunden sind, können Sie den Debugger von VS Code auf die gleiche Weise verwenden, wie Sie es beim lokalen Ausführen der Anwendung tun würden. Wenn Sie beispielsweise eine Startkonfiguration in launch.json auswählen und das Debugging starten (F5), startet die Anwendung auf dem Remote-Host und der Debugger wird an sie angehängt.
Details zur Konfiguration der Debugging-Funktionen von VS Code in .vscode/launch.json finden Sie in der Debugging-Dokumentation.
SSH-Host-spezifische Einstellungen
Die lokalen Benutzereinstellungen von VS Code werden auch wiederverwendet, wenn Sie mit einem SSH-Host verbunden sind. Während dies Ihre Benutzererfahrung konsistent hält, möchten Sie möglicherweise einige dieser Einstellungen zwischen Ihrer lokalen Maschine und jedem Host variieren. Glücklicherweise können Sie, sobald Sie mit einem Host verbunden sind, auch Host-spezifische Einstellungen festlegen, indem Sie den Befehl Einstellungen: Remote-Einstellungen öffnen aus der Befehlspalette (F1, ⇧⌘P (Windows, Linux Ctrl+Shift+P)) ausführen oder die Registerkarte Remote im Einstellungs-Editor auswählen. Diese überschreiben alle Benutzereinstellungen, die Sie vorgenommen haben, sobald Sie sich mit dem Host verbinden. Und Arbeitsbereichseinstellungen überschreiben Remote- und Benutzereinstellungen.

Arbeiten mit lokalen Tools
Die Remote - SSH-Erweiterung bietet keine direkte Unterstützung für die Synchronisierung von Quellcode oder die Verwendung lokaler Tools mit Inhalten auf einem Remote-Host. Es gibt jedoch zwei Möglichkeiten, dies mithilfe gängiger Tools zu tun, die mit den meisten Linux-Hosts funktionieren. Insbesondere können Sie
- Das Remote-Dateisystem mithilfe von SSHFS einbinden.
- Dateien zum/vom Remote-Host mithilfe von
rsyncmit Ihrer lokalen Maschine synchronisieren.
SSHFS ist die bequemste Option und erfordert keine Dateisynchronisierung. Die Leistung ist jedoch deutlich langsamer als bei der Arbeit über VS Code, daher eignet sie sich am besten für die Bearbeitung einzelner Dateien und das Hoch-/Herunterladen von Inhalten. Wenn Sie eine Anwendung verwenden müssen, die viele Dateien gleichzeitig massenhaft liest/schreibt (wie ein lokales Versionskontrolltool), ist rsync die bessere Wahl.
Bekannte Einschränkungen
Einschränkungen von Remote - SSH
- Die Verwendung einer schlüsselbasierten Authentifizierung wird empfohlen. Passwörter und andere Token, die für alternative Authentifizierungsmethoden eingegeben werden, werden nicht gespeichert.
- Alpine Linux und nicht-glibc-basierte Linux-SSH-Hosts werden nicht unterstützt.
- Ältere (Community-unterstützte) Linux-Distributionen erfordern Workarounds, um die benötigten Voraussetzungen zu installieren.
- PuTTY wird unter Windows nicht unterstützt.
- Wenn Sie ein Git-Repository über SSH klonen und Ihr SSH-Schlüssel eine Passphrase hat, können die Pull- und Synchronisierungsfunktionen von VS Code beim Remote-Betrieb hängen bleiben. Verwenden Sie entweder einen SSH-Schlüssel ohne Passphrase, klonen Sie über HTTPS oder führen Sie
git pushvon der Befehlszeile aus, um das Problem zu umgehen. - Lokale Proxy-Einstellungen werden auf dem Remote-Host nicht wiederverwendet, was dazu führen kann, dass Erweiterungen nicht funktionieren, es sei denn, die entsprechenden Proxy-Informationen sind auf dem Remote-Host konfiguriert (z. B. globale
HTTP_PROXY- oderHTTPS_PROXY-Umgebungsvariablen mit den entsprechenden Proxy-Informationen). - Siehe hier für eine Liste aktiver Probleme im Zusammenhang mit SSH.
Einschränkungen der Container Tools-Erweiterung
Wenn Sie die Container Tools- oder Kubernetes-Erweiterung von einem WSL-, Remote - Tunnels- oder Remote - SSH-Fenster aus verwenden, werden Sie bei Verwendung der Kontextmenü-Aktion Visual Studio Code anfügen im Container Explorer oder in der Kubernetes-Ansicht aufgefordert, ein zweites Mal aus den verfügbaren Containern auszuwählen.
Einschränkungen bei Erweiterungen
Viele Erweiterungen funktionieren auf Remote-SSH-Hosts ohne Modifikation. In einigen Fällen können jedoch bestimmte Funktionen Änderungen erfordern. Wenn Sie auf ein Erweiterungsproblem stoßen, gibt es eine Zusammenfassung häufiger Probleme und Lösungen, die Sie dem Erweiterungsautor bei der Meldung des Problems nennen können.
Darüber hinaus funktionieren einige auf ARMv7l (AArch32) / ARMv8l (AArch64)-Geräten installierte Erweiterungen möglicherweise nicht aufgrund nativer Module oder Runtimes in der Erweiterung, die nur x86_64 unterstützen. In diesen Fällen müssten die Erweiterungen die Unterstützung dieser Plattformen aktivieren, indem sie Binärdateien für ARMv7l / ARMv8l kompilieren/einschließen.
Häufig gestellte Fragen
Wie richte ich einen SSH-Client auf ... ein?
Siehe Installieren eines unterstützten SSH-Clients für Details.
Wie richte ich einen SSH-Server auf ... ein?
Siehe Installieren eines unterstützten SSH-Servers für Details zum Einrichten eines SSH-Servers für Ihren Host.
Kann ich mich mit einem anderen/zusätzlichen Authentifizierungsmechanismus wie einem Passwort an meinem SSH-Server anmelden?
Ja, Sie sollten automatisch aufgefordert werden, Ihr Token oder Passwort einzugeben. Passwörter werden jedoch nicht gespeichert, daher ist die Verwendung einer schlüsselbasierten Authentifizierung in der Regel bequemer.
Wie behebe ich SSH-Fehler bezüglich "bad permissions"?
Siehe Beheben von Fehlern bei SSH-Dateiberechtigungen für Details zur Lösung dieser Art von Fehlern.
Welche Linux-Pakete / -Bibliotheken müssen auf Remote-SSH-Hosts installiert sein?
Die meisten Linux-Distributionen erfordern keine zusätzlichen Installationsschritte für Abhängigkeiten. Für SSH müssen Linux-Hosts über Bash (/bin/bash), tar und entweder curl oder wget verfügen, und diese Dienstprogramme könnten in bestimmten abgespeckten Distributionen fehlen. Remote-Entwicklung erfordert außerdem Kernel >= 3.10, glibc >= 2.17, libstdc++ >= 3.4.18. Derzeit werden nur glibc-basierte Distributionen unterstützt, daher wird Alpine Linux nicht unterstützt.
Siehe Linux-Voraussetzungen für Details.
Was sind die Konnektivitätsanforderungen für den VS Code Server, wenn er auf einer Remote-Maschine / VM läuft?
Die Installation des VS Code Servers erfordert, dass Ihre lokale Maschine über eine ausgehende HTTPS-Konnektivität (Port 443) verfügt zu
update.code.visualstudio.comvscode.download.prss.microsoft.com
Standardmäßig versucht die Remote - SSH-Erweiterung, den Download auf dem Remote-Host durchzuführen, und greift darauf zurück, den VS Code Server lokal herunterzuladen und remote zu übertragen, sobald eine Verbindung hergestellt ist. Sie können dieses Verhalten mit der Einstellung remote.SSH.localServerDownload ändern, um immer lokal herunterzuladen und dann zu übertragen, oder niemals lokal herunterzuladen.
Sie können Erweiterungen ohne Internetverbindung manuell über den Befehl Erweiterungen: Aus VSIX installieren... installieren, aber wenn Sie das Erweiterungs-Panel zum Installieren von Erweiterungen verwenden, benötigen Ihre lokale Maschine und der VS Code Server ausgehenden HTTPS-Zugriff (Port 443) auf
marketplace.visualstudio.com*.gallerycdn.vsassets.io(Azure CDN)
Schließlich laden einige Erweiterungen (wie C#) sekundäre Abhängigkeiten von download.microsoft.com oder download.visualstudio.microsoft.com herunter. Andere (wie Visual Studio Live Share) können zusätzliche Konnektivitätsanforderungen haben. Konsultieren Sie die Dokumentation der Erweiterung für Details, wenn Sie Probleme haben.
Alle anderen Kommunikationen zwischen dem Server und dem VS Code-Client werden über den authentifizierten, sicheren SSH-Tunnel abgewickelt.
Kann ich lokale Tools für Quellcode verwenden, der sich auf dem Remote-SSH-Host befindet?
Ja. Normalerweise geschieht dies mithilfe von SSHFS oder durch Verwendung von rsync, um eine Kopie der Dateien auf Ihrer lokalen Maschine zu erhalten. SSHFS bindet das Remote-Dateisystem ein und ist ideal für Szenarien, in denen Sie einzelne Dateien bearbeiten oder den Quellbaum durchsuchen müssen, und erfordert keinen Synchronisierungsschritt zur Verwendung. Es ist jedoch nicht ideal für die Verwendung von Tools wie Versionskontrollsystemen, die Dateien massenhaft verwalten. In diesem Fall ist der rsync-Ansatz besser, da Sie eine vollständige Kopie des Remote-Quellcodes auf Ihrer lokalen Maschine haben. Siehe Tipps und Tricks für Details.
Kann ich VS Code verwenden, wenn ich nur SFTP/FTP-Dateisystemzugriff auf meinen Remote-Host habe (kein Shell-Zugriff)?
Einige Cloud-Plattformen bieten Entwicklern nur Remote-Dateisystemzugriff statt direktem Shell-Zugriff. VS Code Remote Development wurde nicht mit diesem Anwendungsfall im Hinterkopf entwickelt, da dies die Leistungs- und Benutzererfahrungsvorteile zunichtemacht.
Dieser Anwendungsfall kann jedoch normalerweise durch die Kombination von Erweiterungen wie SFTP mit Remote-Debugging-Funktionen für Node.js, Python, C# oder andere abgedeckt werden.
Was muss ich als Erweiterungsautor tun?
Die VS Code-Erweiterungs-API abstrahiert lokale/remote Details, sodass die meisten Erweiterungen ohne Änderungen funktionieren. Da Erweiterungen jedoch beliebige Node-Module oder Laufzeiten verwenden können, gibt es Situationen, in denen Anpassungen vorgenommen werden müssen. Wir empfehlen Ihnen, Ihre Erweiterung zu testen, um sicherzustellen, dass keine Aktualisierungen erforderlich sind. Details finden Sie unter Unterstützung der Remote-Entwicklung.
Fragen oder Feedback
- Siehe Tipps und Tricks oder die FAQ.
- Auf Stack Overflow suchen.
- Eine Funktionsanforderung hinzufügen oder ein Problem melden.
- Zu unserer Dokumentation oder VS Code selbst beitragen.
- Details finden Sie in unserem CONTRIBUTING-Leitfaden.