Remote-Entwicklung mit SSH
Die Erweiterung Visual Studio Code Remote - SSH ermöglicht es Ihnen, einen Remote-Ordner auf jedem Remote-Computer, jeder virtuellen Maschine oder jedem Container mit einem laufenden SSH-Server zu öffnen und die vollständigen Funktionen von VS Code zu nutzen. Sobald Sie mit einem Server verbunden sind, können Sie mit Dateien und Ordnern auf dem gesamten Remote-Dateisystem interagieren.
Da kein Quellcode auf Ihrem lokalen Computer vorhanden sein muss, um diese Vorteile zu nutzen, führt die Erweiterung Befehle und andere Erweiterungen direkt auf dem Remote-Computer aus. Die Erweiterung installiert den VS Code Server auf dem Remote-Betriebssystem. Dieser Server ist unabhängig von jeder vorhandenen VS Code-Installation auf dem Remote-Betriebssystem.

Dies ermöglicht VS Code, eine Entwicklungsumgebung auf lokaler Ebene bereitzustellen – einschließlich vollständiger IntelliSense (Vervollständigungen), Code-Navigation und Debugging – unabhängig davon, wo Ihr Code gehostet wird.
Erste Schritte
Hinweis: Nach dem Lesen dieses Themas 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) 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 aktivierter Remote-Anmeldung.
- Für Remote-Hosts sind 1 GB RAM erforderlich, es werden jedoch mindestens 2 GB RAM und eine 2-Kern-CPU empfohlen.
Andere glibc-basierte Linux-Distributionen für x86_64, ARMv7l (AArch32) und ARMv8l (AArch64) sollten funktionieren, wenn sie die erforderlichen Voraussetzungen erfüllen. Informationen zu Voraussetzungen und Tipps zur Einrichtung von Community-unterstützten Distributionen finden Sie im Artikel Remote-Entwicklung unter Linux.
Obwohl die Unterstützung für ARMv7l (AArch32) und ARMv8l (AArch64) verfügbar ist, funktionieren möglicherweise einige Erweiterungen, die auf diesen Geräten installiert sind, aufgrund der Verwendung von x86-Native-Code in der Erweiterung nicht.
Installation
Um zu beginnen, müssen Sie
-
Einen OpenSSH-kompatiblen SSH-Client installieren, falls noch keiner vorhanden ist.
-
Visual Studio Code oder Visual Studio Code Insiders installieren.
-
Die Remote-SSH-Erweiterung installieren. Wenn Sie mit anderen Remote-Erweiterungen in VS Code arbeiten möchten, können Sie das Remote Development-Erweiterungspaket installieren.
SSH-Host-Einrichtung
-
Wenn Sie noch keinen SSH-Host eingerichtet haben, folgen Sie den Anweisungen für Linux, Windows 10 / Server (1803+) oder macOS SSH-Host oder erstellen Sie eine VM auf Azure.
-
Optional: Wenn auf Ihren Linux- oder macOS-SSH-Hosts gleichzeitig mehrere Benutzer zugreifen sollen, sollten Sie in den VS Code Benutzereinstellungen die Option Remote.SSH: Remote Server Listen On Socket aktivieren, um die Sicherheit zu verbessern.
Im Einstellungseditor

Details finden Sie im Artikel Tipps und Tricks.
-
Optional: Obwohl die passwortbasierte Authentifizierung unterstützt wird, empfehlen wir die Einrichtung einer schlüsselbasierten Authentifizierung für Ihren Host. Details finden Sie im Artikel Tipps und Tricks.
Verbindung mit einem Remote-Host
Um sich zum ersten Mal mit einem Remote-Host zu verbinden, führen Sie die folgenden Schritte aus
-
Stellen Sie sicher, dass Sie eine Verbindung zum SSH-Host herstellen können, indem Sie den folgenden Befehl in einem Terminal-/PowerShell-Fenster ausführen und
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: Mit Host verbinden... aus der Befehlspalette (F1, ⇧⌘P (Windows, Linux Ctrl+Shift+P)) und verwenden Sie denselben
user@hostnamewie in Schritt 1.
-
Wenn VS Code den Typ des Servers, mit dem Sie eine Verbindung herstellen, nicht automatisch erkennen kann, werden Sie aufgefordert, den Typ manuell auszuwählen.

Nachdem 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 wird VS Code eine Verbindung zum SSH-Server herstellen und sich selbst einrichten. VS Code hält Sie über eine Fortschrittsanzeige auf dem Laufenden, und Sie können ein detailliertes Protokoll im Ausgabekanal
Remote - SSHeinsehen.Tipp: Die Verbindung hängt oder schlägt fehl? Weitere Informationen zur Behebung gängiger Probleme finden Sie unter Fehlerbehebungstipps.
Wenn Sie Fehler bezüglich SSH-Dateiberechtigungen erhalten, lesen Sie den Abschnitt Fehler bei SSH-Dateiberechtigungen beheben.
-
Nachdem Sie verbunden sind, befinden Sie sich in einem leeren Fenster. Sie können die Statusleiste jederzeit überprüfen, um zu sehen, mit welchem Host Sie verbunden sind.

Ein Klick auf das Element in der Statusleiste bietet eine Liste mit Remote-Befehlen, während Sie verbunden sind.
-
Anschließend können Sie jeden Ordner oder Arbeitsbereich auf dem Remote-Computer mit Datei > Öffnen... oder Datei > Arbeitsbereich öffnen... öffnen, genau wie lokal!

Installieren Sie von hier aus beliebige Erweiterungen, die Sie verwenden möchten, wenn Sie mit dem Host verbunden sind, und beginnen Sie mit der Bearbeitung!
Hinweis: Auf ARMv7l / ARMv8l
glibcSSH-Hosts funktionieren möglicherweise einige Erweiterungen aufgrund von x86-kompiliertem nativem Code innerhalb der Erweiterung nicht.
Ordner auf einem Remote-SSH-Host in einem Container öffnen
Wenn Sie einen Linux- oder macOS-SSH-Host verwenden, können Sie die Erweiterungen Remote - SSH und Dev Containers gemeinsam nutzen, um einen Ordner auf Ihrem Remote-Host in einem Container zu öffnen. Sie müssen nicht einmal einen Docker-Client lokal installiert haben.
Um dies zu tun
- Befolgen Sie die Installationsschritte zum Installieren von Docker auf Ihrem Remote-Host sowie VS Code und 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.
- Befolgen Sie die Schnellstartanleitung 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. Sie können mehr über die Dev Containers-Erweiterung in ihrer Dokumentation erfahren. Sie können auch den Artikel Entwickeln auf einem Remote-Docker-Host für andere Optionen lesen, wenn dieses Modell nicht Ihren Anforderungen entspricht.
Verbindung von 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 merken
Wenn Sie eine Reihe von Hosts haben, die Sie häufig verwenden, oder wenn Sie sich mit einigen zusätzlichen Optionen mit einem Host verbinden müssen, können Sie diese zu einer lokalen Datei hinzufügen, die dem SSH-Konfigurationsdateiformat entspricht.
Um die Einrichtung zu erleichtern, kann Sie die Erweiterung durch Hinzufügen eines Hosts führen, ohne diese Datei manuell bearbeiten zu müssen.
Wählen Sie zunächst Remote-SSH: Neuen SSH-Host hinzufügen... aus der Befehlspalette (F1, ⇧⌘P (Windows, Linux Ctrl+Shift+P)) oder klicken Sie auf das Symbol Neu hinzufügen im 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 vom Befehlszeilenfenster aus mit dem Host zu verbinden

Schließlich werden Sie aufgefordert, eine zu verwendende Konfigurationsdatei auszuwählen. Sie können auch die Eigenschaft "remote.SSH.configFile" in Ihrer Benutzereinstellung settings.json festlegen, wenn Sie eine andere Konfigurationsdatei als die aufgelisteten verwenden möchten. Die Erweiterung kümmert sich um 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
Details zum Generieren des hier gezeigten Schlüssels finden Sie in Tipps und Tricks. Sie können diese Datei manuell mit allem bearbeiten, was das SSH-Konfigurationsdateiformat unterstützt, dies ist also nur ein Beispiel.
Ab diesem Zeitpunkt wird der Host in der Hostliste angezeigt, wenn Sie Remote-SSH: Mit Host verbinden... aus der Befehlspalette (F1, ⇧⌘P (Windows, Linux Ctrl+Shift+P)) oder im Abschnitt SSH-Ziele des Remote Explorers auswählen.

Der Remote Explorer ermöglicht es Ihnen, sowohl ein neues leeres Fenster auf dem Remote-Host zu öffnen als auch direkt einen zuvor geöffneten Ordner zu öffnen. 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 entweder lokal auf der Benutzeroberfläche/Clientseite oder remote auf dem SSH-Host aus. Während Erweiterungen, die die VS Code-Benutzeroberfläche beeinflussen, wie Designs und Snippets, lokal installiert werden, befinden sich die meisten Erweiterungen auf dem SSH-Host. Dies gewährleistet eine reibungslose Erfahrung und ermöglicht es Ihnen, alle benötigten Erweiterungen für einen bestimmten Arbeitsbereich auf einem SSH-Host von Ihrem lokalen Computer aus zu installieren. Auf diese Weise können Sie genau dort weitermachen, wo Sie aufgehört haben, von einem anderen Computer aus, komplett mit Ihren Erweiterungen.
Wenn Sie eine Erweiterung über die Erweiterungsansicht installieren, wird sie automatisch an der richtigen Stelle installiert. Nach der Installation können Sie anhand der Kategorienzuordnung erkennen, wo eine Erweiterung installiert ist.
Es wird eine Kategorie für Ihren Remote-SSH-Host geben

Und auch eine Kategorie Lokal – Installiert

Hinweis: Wenn Sie ein Erweiterungsautor sind und feststellen, dass Ihre Erweiterung nicht richtig funktioniert oder am falschen Ort installiert wird, finden Sie Details unter Unterstützung der Remote-Entwicklung.
Lokale Erweiterungen, die tatsächlich remote ausgeführt werden müssen, werden in der Kategorie Lokal – Installiert ausgegraut und deaktiviert angezeigt. 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 wechseln und Lokale Erweiterungen in SSH installieren: {Hostname} über die Schaltfläche mit der Wolke rechts von der Titelleiste Lokal – Installiert auswählen. Dies zeigt ein Dropdown-Menü an, in dem Sie auswählen können, welche lokal installierten Erweiterungen auf Ihrem SSH-Host installiert werden sollen.
Ständig installierte Erweiterungen
Wenn es Erweiterungen gibt, die Sie immer auf jedem SSH-Host installiert haben möchten, können Sie diese über die Eigenschaft remote.SSH.defaultExtensions in settings.json angeben. 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"
]
Erweitert: Erzwingen der lokalen/remoten Ausführung einer Erweiterung
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 die Ausführung der Erweiterung auf der lokalen Benutzeroberfläche/Clientseite. Dies sollte normalerweise nur zum Testen verwendet werden, es sei denn, dies wird in der Dokumentation der Erweiterung anders angegeben, da es Erweiterungen beschädigen kann. Details finden Sie im Artikel Unterstützung der Remote-Entwicklung.
Weiterleiten eines Ports / Erstellen eines SSH-Tunnels
Manchmal müssen Sie beim Entwickeln auf einen Port auf einem Remote-Computer zugreifen, der nicht öffentlich zugänglich ist. Es gibt zwei Möglichkeiten, dies mit einem SSH-Tunnel zu tun, der den gewünschten Remote-Port an Ihren lokalen Computer "weiterleitet".
Temporäres Weiterleiten eines Ports
Sobald Sie mit einem Host verbunden sind, können Sie, wenn Sie einen neuen Port temporär weiterleiten möchten, für die Dauer der Sitzung Port weiterleiten aus der Befehlspalette (F1, ⇧⌘P (Windows, Linux Ctrl+Shift+P)) auswählen oder auf die Schaltfläche Port hinzufügen in der Portansicht klicken. Sie können die Portansicht im unteren Bereich sehen oder den Befehl Ports: Fokus auf Portansicht ausführen.

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

Eine Benachrichtigung informiert Sie über den lokalen Port, den Sie verwenden sollten, um auf den Remote-Port zuzugreifen. Wenn Sie beispielsweise einen HTTP-Server weitergeleitet haben, der auf Port 3000 lauscht, kann die Benachrichtigung Ihnen mitteilen, dass er Port 4123 auf localhost zugeordnet wurde, da 3000 bereits in Verwendung war. Sie können dann mit https://:4123 auf diesen Remote-HTTP-Server zugreifen.
Dieselbe Information ist im Abschnitt Weitergeleitete Ports des Remote Explorers verfügbar, falls Sie später darauf zugreifen müssen.
Wenn Sie möchten, dass VS Code weitergeleitete Ports speichert, aktivieren Sie Remote: Weitergeleitete Ports wiederherstellen im Einstellungseditor (⌘, (Windows, Linux Ctrl+,)) oder setzen Sie "remote.restoreForwardedPorts": true in settings.json.

Lokalen Port im Tunnel ändern
Wenn Sie möchten, dass der lokale Port des Tunnels von dem des Remote-Servers abweicht, können Sie dies über das Panel Weitergeleitete Ports ändern.
Klicken Sie mit der rechten Maustaste auf den zu ändernden Tunnel und wählen Sie im Kontextmenü Lokalen Adressport ändern aus.

Einen Port immer weiterleiten
Wenn Sie Ports haben, die Sie immer weiterleiten möchten, können Sie die Direktive LocalForward 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
Öffnen eines Terminals auf einem Remote-Host
Das Öffnen eines Terminals auf dem Remote-Host von VS Code aus ist einfach. Sobald Sie verbunden sind, wird jedes Terminalfenster, das Sie in VS Code öffnen (Terminal > Neues Terminal), automatisch auf dem Remote-Host anstelle von lokal ausgeführt.
Sie können auch den code-Befehl aus demselben Terminalfenster verwenden, um eine Reihe von Operationen durchzuführen, z. B. das Öffnen einer neuen Datei oder eines neuen Ordners auf dem Remote-Host. Geben Sie code --help ein, um alle verfügbaren Optionen auf der Befehlszeile anzuzeigen.

Debuggen auf dem SSH-Host
Sobald Sie mit einem Remote-Host verbunden sind, können Sie den VS Code-Debugger auf die gleiche Weise verwenden wie beim Ausführen der Anwendung lokal. Wenn Sie beispielsweise eine Startkonfiguration in launch.json auswählen und das Debugging starten (F5), wird die Anwendung auf dem Remote-Host gestartet und der Debugger daran angehängt.
Details zur Konfiguration der Debugging-Funktionen von VS Code in .vscode/launch.json finden Sie in der Debugging-Dokumentation.
Hostspezifische SSH-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 Ihrem lokalen Computer und jedem Host variieren. Glücklicherweise können Sie, sobald Sie mit einem Host verbunden sind, auch hostspezifische Einstellungen vornehmen, 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 Einstellungseditor auswählen. Diese überschreiben alle vorhandenen Benutzereinstellungen, wenn Sie sich mit dem Host verbinden. Und Workspace-Einstellungen ü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 mit gängigen Tools zu tun, die mit den meisten Linux-Hosts funktionieren. Insbesondere können Sie
- Das Remote-Dateisystem mit SSHFS bereitstellen.
- Dateien mit
rsynczum und vom Remote-Host zu Ihrem lokalen Computer synchronisieren.
SSHFS ist die bequemste Option und erfordert keine Dateisynchronisierung. Die Leistung ist jedoch erheblich langsamer als die Arbeit über VS Code. Daher ist sie am besten für die Bearbeitung einzelner Dateien und den Upload/Download von Inhalten geeignet. Wenn Sie eine Anwendung verwenden müssen, die viele Dateien gleichzeitig liest/schreibt (wie ein lokales Quellcodeverwaltungstool), ist rsync die bessere Wahl.
Bekannte Einschränkungen
Einschränkungen von Remote - SSH
- Die Verwendung von schlüsselbasierter Authentifizierung wird empfohlen. Passwörter und andere Tokens, 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 erforderlichen 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 Proxyeinstellungen 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 Umgebungsvariablen
HTTP_PROXYoderHTTPS_PROXYmit den entsprechenden Proxy-Informationen). - Hier finden Sie eine Liste der aktiven 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, fordert die Aktion Visual Studio Code anhängen im Container Explorer oder in der Kubernetes-Ansicht auf, aus den verfügbaren Containern ein zweites Mal auszuwählen.
Einschränkungen bei Erweiterungen
Viele Erweiterungen funktionieren ohne Änderungen auf Remote-SSH-Hosts. In einigen Fällen können jedoch bestimmte Funktionen Änderungen erfordern. Wenn Sie auf ein Problem mit einer Erweiterung stoßen, gibt es eine Zusammenfassung gängiger Probleme und Lösungen, die Sie dem Erweiterungsautor bei der Meldung des Problems erwähnen können.
Darüber hinaus funktionieren einige Erweiterungen, die auf ARMv7l (AArch32) / ARMv8l (AArch64)-Geräten installiert sind, aufgrund von nativen Modulen oder Laufzeiten in der Erweiterung, die nur x86_64 unterstützen, möglicherweise nicht. In diesen Fällen müssten die Erweiterungen sich für die Unterstützung dieser Plattformen entscheiden, indem sie Binärdateien für ARMv7l / ARMv8l kompilieren / einfügen.
Häufig gestellte Fragen
Wie richte ich einen SSH-Client unter ... ein?
Details finden Sie unter Installation eines unterstützten SSH-Clients.
Wie richte ich einen SSH-Server unter ... ein?
Details zur Einrichtung eines SSH-Servers für Ihren Host finden Sie unter Installation eines unterstützten SSH-Servers.
Kann ich mich mit einem anderen/zusätzlichen Authentifizierungsmechanismus wie einem Passwort bei 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 von schlüsselbasierter Authentifizierung in der Regel bequemer.
Wie behebe ich SSH-Fehler wegen "schlechter Berechtigungen"?
Details zur Behebung dieser Art von Fehlern finden Sie unter Fehler bei SSH-Dateiberechtigungen beheben.
Welche Linux-Pakete / Bibliotheken müssen auf Remote-SSH-Hosts installiert werden?
Die meisten Linux-Distributionen erfordern keine zusätzlichen Abhängigkeitsinstallationsschritte. Für SSH benötigen Linux-Hosts Bash (/bin/bash), tar und entweder curl oder wget. Diese Dienstprogramme fehlen möglicherweise in bestimmten stark reduzierten Distributionen. Remote-Entwicklung erfordert außerdem Kernel >= 3.10, glibc >= 2.17, libstdc++ >= 3.4.18. Derzeit werden nur glibc-basierte Distributionen unterstützt, daher ist im Umkehrschluss Alpine Linux nicht unterstützt.
Details finden Sie unter Voraussetzungen für Linux.
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 ausgehende HTTPS-Konnektivität (Port 443) zu folgenden Adressen verfügt:
update.code.visualstudio.comvscode.download.prss.microsoft.com
Standardmäßig versucht Remote - SSH, den Download auf dem Remote-Host durchzuführen und greift auf den lokalen Download von VS Code Server zurück, um ihn nach dem Herstellen der Verbindung remote zu übertragen. Sie können dieses Verhalten mit der Einstellung remote.SSH.localServerDownload ändern, um immer lokal herunterzuladen und dann zu übertragen, oder um nie lokal herunterzuladen.
Sie können Erweiterungen manuell ohne Internetverbindung über den Befehl Erweiterungen: Aus VSIX installieren... installieren. Wenn Sie jedoch das Erweiterungspanel zur Installation 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.
Die gesamte andere Kommunikation zwischen dem Server und dem VS Code-Client erfolgt über den authentifizierten, sicheren SSH-Tunnel.
Kann ich lokale Tools auf Quellcode verwenden, der sich auf dem Remote-SSH-Host befindet?
Ja. Dies geschieht typischerweise mit SSHFS oder durch Verwendung von rsync, um eine Kopie der Dateien auf Ihrem lokalen Computer zu erhalten. SSHFS stellt das Remote-Dateisystem bereit und ist ideal für Szenarien, in denen Sie einzelne Dateien bearbeiten oder den Quellbaum durchsuchen müssen und keine Synchronisierung erfordert. Es ist jedoch nicht ideal für die Verwendung eines Quellcodeverwaltungstools, das Dateien in großen Mengen verwaltet. In diesem Fall ist der rsync-Ansatz besser, da Sie eine vollständige Kopie des Remote-Quellcodes auf Ihrem lokalen Computer erhalten. Details finden Sie in Tipps und Tricks.
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 Fernzugriff auf das Dateisystem, anstatt direkten Shell-Zugriff. VS Code Remote Development wurde nicht für diesen Anwendungsfall konzipiert, da er die Vorteile in Bezug auf Leistung und Benutzererfahrung zunichte macht.
Dieser Anwendungsfall kann jedoch typischerweise durch die Kombination von Erweiterungen wie SFTP mit Remote-Debugging-Funktionen für Node.js, Python, C# oder andere behandelt 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.