Benutzer-Werkzeuge

Webseiten-Werkzeuge


howtos:sshstepstone

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
howtos:sshstepstone [2017/09/20 14:54] morquaihowtos:sshstepstone [2022/02/18 08:09] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 23: Zeile 23:
     User            admin     User            admin
     ProxyCommand    /usr/bin/ssh -q -W %h:%p tunnel     ProxyCommand    /usr/bin/ssh -q -W %h:%p tunnel
 +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][/home/user] ssh -v server2.example.com
 +  OpenSSH_7.5p1, OpenSSL 1.0.2k  26 Jan 2017
 +  debug1: Reading configuration data /home/user/.ssh/config
 +  debug1: /home/user/.ssh/config line 114: Applying options for *
 +  debug1: /home/user/.ssh/config line 179: Applying options for *.example.com
 +  debug1: Executing proxy command: exec /usr/bin/ssh -q -W server2.example.com:22 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. \\ 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.\\ 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). +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: 
 +  - %% - 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 "Step" Session offen, um den lokalen Port 2222 nutzen zu können. Wenn man das Fenster als störend empfindet, kann man mit   
 +  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, der mit allen so aufgesetzten ssh Verbindungen über einen ControlPath kommunizieren kann. Auf weitere Einsatzzwecke komme ich in weiteren HowTo's zu sprechen, hier nur mal der Command um dies zu realisieren: 
 +  ssh -N -f -o "ControlMaster=auto" -o "ControlPath=~/.ssh/cm_sockets/%r@%h:%p" step 
 +wird der Prozess gestartet und sofort in den Hintergrund geschickt. Das Verzeichnis ~/.ssh/cm_sockets/ muss existieren. In der .ssh/config sind die Einträge wie folgt zu setzen: 
 +  # Erstmal den Stepping Stone definieren 
 +  Host step 
 +    User            admin 
 +    HostName        hop.example.com 
 +    ForwardX11      yes    
 +    LocalForward    2222 localhost:22 
 +    ControlMaster   auto 
 +    ControlMaster   ~/.ssh/cm_sockets/%r@%h:%p 
 +    ControlPersist  0
            
 +Durch die Angabe eines ControlPath wird es uns möglich, den Hintergrundprocess mit der Option "-O" zu kontrollieren
 +  ssh -O check step # Prüft, ob die Connection aktiv ist
 +  ssh -O exit step # beenden die Connection
 +
 +Die weiteren möglichen Befehle zu "-O" findet ihr, wie schon gesagt, in anderen SSH HowTo's.  
 +
 +
 +
  
  
howtos/sshstepstone.1505919292.txt.gz · Zuletzt geändert: 2017/09/20 14:54 von morquai