Benutzer-Werkzeuge

Webseiten-Werkzeuge


howtos:sshstepstone
Übersetzungen dieser Seite:

Dies ist eine alte Version des Dokuments!


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, z.B. ein OATH (One Time Authorisation Token). Eine Anmeldung nur durch einen Private Keys ist unterbunden. Der Rechner ist also quasi der Einstiegspunkt in das Firmennetzwerk.
Das tägliche Problem ist es zig-mal das OATH herauszugraben, sobald einer der Server meine Aufmerksamkeit verlangt. Das muss auch einfacher gehen. Wie gehe ich vor? Ich melde mich auf hop.example.com an und wechsele von dort via ssh zu database.example.com, ich brauche also zwei Commands

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        hop.example.com
  ForwardX11      yes   
  LocalForward    2222 localhost:22
# Jetzt den Port 2222 auf meinem Client
Host tunnel
  HostName        localhost
  Port            2222
  User            admin
# Nun den Rest der Firma
Host *.example.com
  HostName        %h
  User            admin
  ProxyCommand    /usr/bin/ssh -q -W %h:%p tunnel

Alles klar? Natürlich nicht, also hier die Auflösung des Rätsels. Einmalig melde ich mich auf „step“ an, um den lokalen Port 2222 mit dem Port 22 des Stepping Stones zu verheiraten. Hier muss ich mich natürlich mit meinem OATH ausweisen. Diese SSH Session minimiere ich und vergessen sie.
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“ auf dem Stepping Stone anmelden, ohne das OATH herausholen zu müssen. Damit habe ich diese Schritt zwar vereinfacht muss aber immer noch zwei ssh Commands eingeben, um dahin zu kommen wo ich eigentlich hin muss.
Der dritte Eintrag ist es, der mit den „direkten“ Login erlaubt. Der Parameter „ProxyCommand“ sorgt dafür, das auf „tunnel“ ein Befehl (ssh in diesem Fall) gestartet wird. Der zu diesem ssh Aufruf „-W %h:%p“ ist ein wenig kryptisch. In der .ssh/config kann ich Variablen verwenden, „%h“ steht für den eingegeben Hostnamen, „%p“ für eine eingegebene Portnummer (wenn man keine angegeben hat, wird 22 als Default genommen).
Eine Liste der nutzbaren Variablen ist:

  1. %% - Das Zeichen ‘%’
  2. %C - Abkürzung für %l%h%p%r
  3. %d - Pfadname des lokalne Home Directories
  4. %h - Der lokale Hostname
  5. %i - Die lokale Benutzer ID (numerisch)
  6. %L - Der lokale hostname
  7. %l - Der voll qualifizierte lokale hostname (client.heim.netz)
  8. %n - Der im ssh Command angegebene Hostname
  9. %p - Der Port auf der Server Seite
  10. %r - Der username auf dem Server
  11. %u - Der lokale Benutzename
howtos/sshstepstone.1505981308.txt.gz · Zuletzt geändert: 2017/09/21 08:08 von morquai