ssh ProxyCommand

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

Update: Optimize Table fällig?

Ich kann mir einfach nicht merken, wie man bei MySQL checkt ob Tabellen optimiert werden müssen. Jetzt wird’s aufgeschrieben:

show table status from test where data_free > 0;

Update:
Der Query ermittelt natürlich nur den verschwendeten Platz. Ein Optimize Tabelle kann aber auch schon früher sinnvoll sein. Etwa wenn Werte innerhalb der Tabellen sehr oft geändert wurden.