Remote SSH: Tipps und Hacks

In einem früheren Beitrag zu Remote-SSH haben wir uns mit der Konfiguration einer virtuellen Linux-Maschine und der Verbindung zu einer virtuellen Maschine mithilfe der Remote-SSH-Erweiterung in Visual Studio Code befasst. In diesem Beitrag werden wir einige Tipps und Tricks erläutern, mit denen Sie Ihre Remote-Konfiguration optimal nutzen können.



Stellen Sie eine Verbindung mit Remote SSH her


Mit der Visual Studio Code Remote - SSH-Erweiterung können Sie mithilfe von SSH und über VS Code eine Verbindung zu einer Remote-Maschine oder einer virtuellen Maschine herstellen. Wenn die Erweiterung noch nicht installiert ist, können Sie auf der Registerkarte „Erweiterungen“ (⇧⌘X) nach „remote ssh“ suchen.



Nach der Installation der Erweiterung wird in der unteren linken Ecke der Statusleiste eine Anzeige angezeigt. Dieser Indikator zeigt an, in welchem ​​Kontext VS-Code (lokal oder remote) funktioniert. Klicken Sie auf die Anzeige, um eine Liste der Remote-Erweiterungsbefehle anzuzeigen.



SSH-Konfigurationsdatei


In einem früheren Beitrag zu Remote-SSH haben wir nur eine Verbindung zu einem Computer hergestellt und bei Aufforderung "user @ host" eingegeben. Wenn Sie regelmäßig eine Verbindung zu mehreren Remoteservern oder lokalen virtuellen Maschinen herstellen, können Sie eine bessere Verbindung herstellen, ohne sich alle Benutzernamen, Adressen und zusätzlichen Konfigurationsparameter merken zu müssen.

OpenSSH unterstützt die Verwendung einer Konfigurationsdatei zum Speichern aller Ihrer verschiedenen SSH-Verbindungen. Um die SSH-Konfigurationsdatei zu verwenden, klicken Sie auf die Remote-Anzeige, um die Remote-Befehle aufzurufen, wählen Sie "Konfigurationsdatei öffnen" und wählen Sie die Datei aus, die sich unter "Benutzer / {Ihr Benutzername} /. Ssh / config" befindet.



Hier ist ein Beispiel für eine SSH-Konfigurationsdatei:

#      SSH: https://linux.die.net/man/5/ssh_config Host python-linux-vm HostName <vm address> User sana IdentityFile ~/.ssh/id_python_vm Host node-vm HostName <vm address> User sana Port 5522 IdentityFile ~/.ssh/id_node_vm 

Es gibt viele andere Konfigurationsoptionen, die Sie im SSH-Konfigurationsdateiformat angeben können. Sie erhalten die Add-Ons in dieser Datei und können auf (⌃Space) für IntelliSense klicken, um mehr über Konfigurationsoptionen zu erfahren.

Oben verwendete Optionen:
HostEin leicht zu merkender Alias ​​für Ihren Host.
HostnameServer-Hostname (Sie können die Server-IP-Adresse verwenden).
BenutzerDer Benutzer, den Sie angegeben haben, um sich über SSH anzumelden.
HafenDer Port, über den die Verbindung über SSH hergestellt wird. Der Standardport ist 22, aber wenn Sie einen eindeutigen Port angegeben haben, können Sie ihn hier konfigurieren.
IdentityFileDer Speicherort der Datei, in der Sie Ihren privaten Schlüssel gespeichert haben.
Sie können Informationen für alle Hosts hinzufügen, die Sie haben. Nach dem Speichern der Konfigurationsdatei können Sie diese Knoten im Remote Explorer sowie alle Ordner anzeigen, die Sie auf diesem Knoten öffnen. Sie können neben jedem Host oder Ordner ein Symbol auswählen. Daraufhin wird ein neues VS-Code-Fenster (Instanz) geöffnet und Sie werden mit diesem Host verbunden. Im folgenden Screenshot bin ich mit meinem Remote-Computer "python-linux-vm" verbunden. Der Remote-Explorer zeigt mir die Ordner, mit denen ich in der Vergangenheit verbunden war, sowie alle umgeleiteten Ports vom Remote-Computer.



Proxy-Befehl


Manchmal müssen Sie möglicherweise über das Intranet Ihres Unternehmens oder hinter einer Firewall eine Verbindung von Ihrem Desktop- oder Laptop-Computer zu einem Remote-Computer herstellen. In diesem Fall können Sie einen Zwischenserver oder eine Sprungbox verwenden . Diese Art der Konfiguration ist nützlich, wenn Sie ein sicheres System ausführen, das so konfiguriert ist, dass SSH-Verbindungen nur von einer festen Gruppe von Hosts akzeptiert werden.

Um die Jump-Box-Konfiguration mit der Remote-SSH-Erweiterung zu verwenden, können Sie den Konfigurationsparameter ProxyCommand verwenden. Diese Konfiguration öffnet eine SSH-Hintergrundverbindung mit der Sprungbox und stellt dann über die private IP-Adresse eine Verbindung zum Ziel her.

Sie können den Konfigurationsparameter ProxyCommand in der SSH-Konfigurationsdatei wie folgt ProxyCommand :

 # Jump box   IP- Host jump-box HostName 52.179.157.97 User sana IdentityFile ~/.ssh/jumpbox #     IP- Host target-box HostName <IP address of target> User sana IdentityFile ~/.ssh/target ProxyCommand ssh -q -W %h:%p jump-box 

Kontrollmeister


Wenn Sie eine Verbindung zu einem Remote-SSH-Host herstellen, indem Sie andere Authentifizierungsmethoden als die schlüsselbasierte Authentifizierung verwenden, z. B. Zwei-Faktor-Authentifizierung, kennwortbasierte Authentifizierung oder einen SSH-Schlüssel mit einer Passphrase, müssen Sie die erforderlichen Informationen möglicherweise mehrmals eingeben.

Anstatt mehrere SSH-Verbindungen zu öffnen, können Sie die ControlMaster Option (nur auf MacOS / Linux-Clients) verwenden, um eine vorhandene Verbindung wiederzuverwenden und die ControlMaster verringern, mit der Sie Ihre Passphrase eingeben müssen.

Fügen Sie Ihrer SSH-Konfigurationsdatei Folgendes hinzu, um diese Funktion zu verwenden:

 Host * ControlMaster auto ControlPath ~/.ssh/sockets/%r@%h-%p ControlPersist 600 

Standalone-Remotecomputer


Wenn Sie durch eine Firewall eingeschränkt sind oder Ihr Unternehmen Ihre virtuellen Maschinen blockiert und diese keine Verbindung zum Internet herstellen können, kann die Remote-SSH-Erweiterung keine Verbindung zu Ihrer virtuellen Maschine herstellen, da VS Code eine Komponente namens VS Code Server auf die Remote-Maschine herunterladen muss.

Jetzt können Sie dieses Problem jedoch mit einem neuen Benutzerparameter in der Remote-Erweiterung - SSH - lösen. Wenn Sie den Parameter remote.SSH.allowLocalServerDownload , installiert die Erweiterung zuerst VS Code Server auf dem Client und kopiert ihn dann über SCP auf den Server.

Hinweis Dies ist derzeit eine experimentelle Funktion, die jedoch in einer zukünftigen Version standardmäßig aktiviert wird.

Remote - SSH Nightly-Erweiterung


Wenn Sie neue Updates und experimentelle Funktionen testen möchten, sobald sie verfügbar sind, installieren Sie die Remote-Erweiterung - SSH Nightly (entfernen Sie zuerst die stabile Remote-SSH-Erweiterung). Dies ist ein Build der Erweiterung über Nacht, bei dem wir mit neuen Funktionen und Einstellungen experimentieren, bevor wir sie der stabilen Version hinzufügen.

Source: https://habr.com/ru/post/de472274/


All Articles