Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
howtos:sshstepstone [2017/09/20 12:58] – angelegt morquai | howtos:sshstepstone [2022/02/18 08:09] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== SSH - Stepping Stones ====== | ====== SSH - Stepping Stones ====== | ||
- | Was soll das sein, ein Stepping Stone. Mein Unternehmen stellt mir einen Rechner zur Verfügung, der als Einsprungspunkt ins Firmennetz dient. Auf diesem Rechner sind erweiterte Authentifizierungsinformationen erforderlich, | + | Was soll das sein, ein Stepping Stone. Mein Unternehmen stellt mir einen Rechner zur Verfügung, der als Einsprungspunkt ins Firmennetz dient. Auf diesem Rechner sind erweiterte Authentifizierungsinformationen erforderlich, |
+ | Das tägliche Problem ist es zig-mal das OATH herauszugraben, | ||
+ | Client: ssh hop.example.com # Damit bekomme ich eine Shell auf dem Stepping Stone, muss aber das OATH benutzen | ||
+ | Hop: ssh database.example.com # Nun bin ich auf dem Datenbank Server | ||
+ | Will ich mich nun auch noch auf dem WebServer web.example.com anmelden, wiederholt sich die Prozedur. Das OATH ist schon ganz abgegriffen 8-)\\ | ||
+ | \\ | ||
+ | Ich will es einfacher haben, also passe ich meine .ssh/config mal wieder an. Ich lasse den "Host *" Teil mal weg, um es übersichtlicher zu gestalten. | ||
+ | # Erstmal den Stepping Stone definieren | ||
+ | Host step | ||
+ | User admin | ||
+ | HostName | ||
+ | ForwardX11 | ||
+ | LocalForward | ||
+ | # Jetzt den Port 2222 auf meinem Client | ||
+ | Host tunnel | ||
+ | HostName | ||
+ | Port 2222 | ||
+ | User admin | ||
+ | # Nun den Rest der Firma | ||
+ | Host *.example.com | ||
+ | HostName | ||
+ | User admin | ||
+ | ProxyCommand | ||
+ | Der Befehl | ||
+ | ssh server2.example.com | ||
+ | bringt mich jetzt sofort auf den angegeben Server, ohne das ich nochmals das OATH bemühen muss. Ein Blick in den Debug Output (ssh -v) zeigt uns wie es funktioniert. | ||
+ | [user@client][/ | ||
+ | OpenSSH_7.5p1, | ||
+ | debug1: Reading configuration data / | ||
+ | debug1: / | ||
+ | debug1: / | ||
+ | debug1: Executing proxy command: exec / | ||
+ | |||
+ | Alles klar? Natürlich nicht, also hier die Auflösung des Rätsels. Einmalig melde ich mich auf " | ||
+ | Da jetzt aller Traffic auf meinen lokalen Port 2222 an den Port 22 des Stepping Stones geleitet wird, könnte ich mich jetzt sofort mit "ssh tunnel" | ||
+ | Der dritte Eintrag ist es, der mit den " | ||
+ | Eine Liste der nutzbaren Variablen ist: | ||
+ | - %% - Das Zeichen ‘%’ | ||
+ | - %C - Abkürzung für %l%h%p%r | ||
+ | - %d - Pfadname des lokalne Home Directories | ||
+ | - %h - Der lokale Hostname | ||
+ | - %i - Die lokale Benutzer ID (numerisch) | ||
+ | - %L - Der lokale hostname | ||
+ | - %l - Der voll qualifizierte lokale hostname (client.heim.netz) | ||
+ | - %n - Der im ssh Command angegebene Hostname | ||
+ | - %p - Der Port auf der Server Seite | ||
+ | - %r - Der username auf dem Server | ||
+ | - %u - Der lokale Benutzename | ||
+ | |||
+ | Während der Arbeit habe ich nun aber immer das Fenster mit der " | ||
+ | ssh -N -f step | ||
+ | den ssh Prozess in den Hintergrund schicken und das Fenster schliessen. Es stellt sich jetzt aber die Frage, wie ich den so in den Hintergrund verschwundenen Prozess kontrollieren (.z.B. beenden) kann. Dafür gibt es den sogenannte Control Mechanismus, | ||
+ | ssh -N -f -o " | ||
+ | wird der Prozess gestartet und sofort in den Hintergrund geschickt. Das Verzeichnis ~/ | ||
+ | # Erstmal den Stepping Stone definieren | ||
+ | Host step | ||
+ | User admin | ||
+ | HostName | ||
+ | ForwardX11 | ||
+ | LocalForward | ||
+ | ControlMaster | ||
+ | ControlMaster | ||
+ | ControlPersist | ||
+ | |||
+ | Durch die Angabe eines ControlPath wird es uns möglich, den Hintergrundprocess mit der Option " | ||
+ | ssh -O check step # Prüft, ob die Connection aktiv ist | ||
+ | ssh -O exit step # beenden die Connection | ||
+ | |||
+ | Die weiteren möglichen Befehle zu " | ||
+ | |||
+ | |||
+ | |||
+ |