Merkzettel: Linux Shell-Befehle

Hier sammle ich einige nützliche Linux Shell-Befehle.

tar|tar

Große Dateibäume mit tar-pipe-tar kopieren:

tar -cf - ./directory_name | (cd /to/target/ && tar -xf -)

Geht auch per SSH übers Netzwerk:

tar -cf - ./directory_name | ssh user@server "cd /to/target && tar -xf -"

SSH-Tunnel

Um durch einen SSH-Tunnel auf einen entfernten Dienst zugreifen zu können:

ssh -L<local-port>:<remote-host>:<remote-port> <user>@<server>

Note: <remote-host> ist dabei aus Sicht von <server> anzugeben.

Will man also auf Port 80 des Servers zugreifen und dafür z.B. den lokalen Port 8080 nutzen ergibt sich folgendes Beispiel:

ssh -L8080:localhost:80 user@server

SSH-Fingerprint

Verbindet man sich zum ersten Mal zu einem Host per SSH wird man aufgefordert den Fingerprint des Public-Keys des Hosts zu bestätigen, dieser wird dann in der know_hosts Datei gespeichert um spätere Main-in-the-Middle Attacks erkennen zu können.

Um den Fingerprint eines Hosts herauszufinden hilft folgender Befehl (auf dem jeweiligen Host):

ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub