Eigene SSH-Konfiguration verwenden
Es gibt so manche Dinge im Leben bei denen man sich fragt - wenn man sie denn einmal herausgefunden hat - warum nicht gleich so? Eines dieser Dinge ist bspw. eine eigene Konfigurationsdatei für ssh-Verbindungen. Normalerweise sieht ein Login auf einem meiner Server nämlich so aus:
$ ssh -p 12345 -i ~/.ssh/server_key user@domain
Das ist vor allem immer eine elende Tipperei. Dabei geht es auch
einfacher, indem man das Ganze einfach in eine config-Datei schreibt und
in seinem Homeverzeichnis unter ~/.ssh/config ablegt:
Host Servername
HostName server.domain.de
Port 12345
User username
IdentityFile ~/.ssh/server_key
Danach kann man ganz einfach mit
$ ssh Servername
sich zu seinem ssh-Server verbinden. Gerade wenn man mehrere ssh-Verbindungen managen will (mit unterschiedlichen RSA-Keys) lohnt es sich eine eigene Konfigurationsdatei anzulegen.
Richtig cool ist allerdings, dass man über ssh bestimmte Ports auf dem
Zielserver auf einen (nicht-privilegierten) Port auf dem lokalen Rechner
mappen kann. Ich kann also bspw. meinen internen Webserver der daheim
auf dem BananaPi zu administrativen Zwecken läuft auf einen beliebigen
Port meines Laptops mappen und so von außerhalb bequem darauf zugreifen.
Dazu muss man seine ~/.ssh/config nur wie folgt erweitern:
Host tunnel_zum_webserver
HostName server.domain.de
Port 12345
User username
IdentityFile ~/.ssh/server_key
LocalForward 4000 127.0.0.1:8080
Jetzt kann man mit
$ ssh -f -N tunnel_zum_webserver
eine einfache Verbindung zu seinem Webserver aufbauen und der ganze Verkehr wird über ssh getunnelt :-)
Das ganze funktioniert nicht nur mit einem Webserver, sondern auch mit allen anderen Diensten, die über das Netzwerk erreichbar sind, wie etwa Samba-Freigaben oder ein MySQL-Server... :-)