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).