ssh ProxyCommand

Von | 20. Oktober 2010

ssh ProxyCommand ist verdammt praktisch, wenn man auf Server in einer DMZ nicht direkt drauf kommt, sondern einen Hob dazwischen nehmen muss. Ohne ssh ProxyCommand sieht der übliche Weg wie folgt aus:

desktop$ ssh firewall
firewall$ ssh dmzhost
dmzhost$

Wie unpraktisch! Ein wenig besser ist

desktop$ ssh -t firewall ssh dmzhost
dmzhost$

Aber mit ssh ProxyCommand geht das ganze deutlich schicker. Dazu muss man folgendes in seiner .ssh/ssh_config oder in der /etc/ssh/ssh_config ergänzen:

Host dmzhost
  Hostname dmzhost
  User username
  ForwardAgent yes
  Port 22
  ProxyCommand ssh remoteuser@firewall nc %h %p

2 Dinge sind dabei erwähnenswert: 1. Durch netcat (nc) ist über den Weg auch scp möglich und 2. kann man diese ssh-Kette beliebig weiter führen. Kann man zum Beispiel einen internen Host nur über dmzhost erreichen so hilft folgender Eintrag weiter:

Host internalhost
  Hostname internalhost
  User username
  ForwardAgent yes
  Port 22
  ProxyCommand ssh remoteuser@dmzhost nc %h %p

Cool, oder? Natürlich müssen dmzhost, internalhost, firewall durch die richtigen auflösbaren Hostnamen ersetzt werden und der username muss natürlich auch dem richtigen entsprechen.

Aufgeschrieben habe ich mir das, weil ich heute darüber mit einem Kollegen gesprochen habe und leider nachsehen musste (RTFM).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.