Remote SSH: Tipps und Tricks

In einem früheren Remote-SSH-Blogbeitrag haben wir uns mit dem Einrichten einer virtuellen Linux-Maschine und dem Herstellen einer Verbindung zur VM mithilfe der Remote-SSH-Erweiterung in Visual Studio Code befasst. In diesem Blog-Beitrag gehen wir auf einige Tipps und Tricks ein, mit denen Sie Ihr Remote-Setup 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 eine Verbindung zu einem Remotecomputer oder einer Remote-VM herstellen, und zwar allesamt innerhalb von VS Code. Wenn Sie die Erweiterung noch nicht installiert haben, können Sie in der Erweiterungsansicht (⇧⌘X) nach "remote ssh" suchen.



Nach der Installation der Erweiterung sehen Sie eine Anzeige in der unteren linken Ecke der Statusleiste. Diese Anzeige zeigt an, in welchem ​​Kontext VS Code ausgeführt wird (lokal oder remote). Klicken Sie auf die Anzeige, um eine Liste der Remote-Erweiterungsbefehle aufzurufen.



SSH-Konfigurationsdatei


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

OpenSSH unterstützt die Verwendung einer Konfigurationsdatei zum Speichern all Ihrer verschiedenen SSH-Verbindungen. Um eine 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 dem Pfad "Benutzer / {Ihr Benutzername} /. Ssh / config" folgt.



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

# Read more about SSH config files: 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 weitere Konfigurationsoptionen, die Sie im SSH- Konfigurationsdateiformat angeben können. In dieser Datei finden Sie Vervollständigungen und Kolorierungen. Sie können (⌃Space) für IntelliSense drücken, um mehr über die Konfigurationsoptionen zu erfahren.

Die oben verwendeten Optionen sind:
HostEin leicht zu merkender Alias ​​für Ihren Host-Computer.
HostnameDer Hostname des Servers (Sie können die IP-Adresse des Servers verwenden).
BenutzerDer Benutzer, den Sie angegeben haben, um sich über SSH am Computer 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 Dateispeicherort, an dem Sie Ihren privaten Schlüssel gespeichert haben.
Sie können die Informationen für alle Hosts hinzufügen, die Sie haben. Sobald Sie die Konfigurationsdatei gespeichert haben, können Sie diese Hosts im Remote-Explorer sowie alle Ordner anzeigen, die Sie auf diesem Host geöffnet haben. Sie können das Symbol neben jedem Host oder Ordner 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 Remotecomputer "python-linux-vm" verbunden und der Remote Explorer zeigt mir die Ordner, mit denen ich in der Vergangenheit verbunden war, sowie alle weitergeleiteten Ports vom Remotecomputer.



Proxy-Befehl


Manchmal müssen Sie möglicherweise eine Verbindung von Ihrem Desktop oder Laptop zu einem Remotecomputer über das Intranet Ihres Unternehmens oder hinter einer Firewall herstellen. In diesem Fall verwenden Sie möglicherweise einen Zwischenserver oder eine Sprungbox . Diese Art der Einrichtung ist nützlich, wenn Sie in einem sicheren System arbeiten, das so konfiguriert ist, dass nur SSH-Verbindungen von einer festen Gruppe von Hosts akzeptiert werden.

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

Sie können die ProxyCommand in der SSH-Konfigurationsdatei wie ProxyCommand :

 # Jump box with public IP address Host jump-box HostName 52.179.157.97 User sana IdentityFile ~/.ssh/jumpbox # Target machine with private IP address 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 neben der schlüsselbasierten Authentifizierung auch andere Authentifizierungsmethoden verwenden, z. B. Zwei-Faktor-, kennwortbasierte 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 

Offline-Remote-Maschine


Wenn Sie durch eine Firewall eingeschränkt sind oder Ihr Unternehmen Ihre VMs sperrt und sie keine Verbindung zum Internet herstellen können, kann die Remote-SSH-Erweiterung keine Verbindung zu Ihrer VM herstellen, da VS Code eine Komponente namens VS Code Server herunterladen muss an die entfernte Maschine.

Sie können dieses Problem jetzt jedoch durch eine neue Benutzereinstellung in der Remote-SSH-Erweiterung lösen. Wenn Sie die Einstellung remote.SSH.allowLocalServerDownload , installiert die Erweiterung zuerst den 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 der nächsten Version standardmäßig aktiviert ist.

Remote - SSH Nightly-Erweiterung


Wenn Sie neue Updates und experimentelle Funktionen testen möchten, sobald diese verfügbar sind, installieren Sie die Erweiterung Remote - SSH Nightly (deinstallieren Sie zuerst die stabile Erweiterung Remote-SSH). Dies ist der nächtliche Build der Erweiterung, in dem wir mit neuen Funktionen und Einstellungen experimentieren, bevor wir sie in die stabile Version freigeben.

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


All Articles