Das SSH Protokoll kann neben dem Remote Login für eine Shell weitere Funktionalitäten wie z.B. die von Netzlaufwerken (sshfs), dem Weiterleiten der Bildschirmausgabe (X forwarding) oder Tunneln von Verbindungen (eine Art Proxy) bereitstellen. Weiterhin bietet SSH verschiedene Möglichkeiten der Authentifizierung über Public Keys, Passwörtern oder IP Nummern/Ranges. Die Einstellungen der Authentifizierungmethode werden über den SSH-Dienst des Servers festgelegt
Public Key Authentifizierung
Bei der Public Key Authentifizierung wird ein Schlüsselpaar erzeugt, bei dem ein Schlüssel auf dem Client und der andere auf dem Server gespeichert wird. Ein Login kann nur erfolgen, wenn beide Schlüssel zusammen passen.
In der Praxis sieht das so aus: der User auf dem Client, also der Rechner, der sich an dem Server anmelden will, erzeugt das Schlüsselpaar. Der private Schlüssel bleibt lesegeschützt in seinem Home Verzeichnis auf diesem Rechner, den öffentlichen Schlüssel hinterlegt er auf allen Servern dort jeweils in seinem Home Verzeichnis. Bei entsprechender Konfiguration der Server ist jetzt ein passwortloses Anmeldeverfahren an dem Server von diesem Client und diesem User möglich. Dieser muss nur dafür sorgen, dass sein privater Schlüssel geheim bleibt.
Aus Sicherheitsgründen prüft der SSH Dienst die korrekte Rechtevergabe der Schlüsseldateien ( /home/<benutzer>/.ssh). Dabei darf das Unterverzeichnis .ssh im Homeorder des Benutzers auf dem Server keine Schreibrechte für Group und Other haben. Um diese Restriktion zu umgehen (z.b. bei Verlinkung des Homeverzeichnisses auf andere Speicherpfade) muss die Option „StrictModes“ in der /etc/ssh/sshd_config auf „no“ gesetzt werden.
1 2 3 4 5 6 7 8 9 10 |
drwxr-xr-x 00 benutzer benutzer 1,0M Jan 1 00:00 /home/benutzer drw------- 00 benutzer benutzer 1,0M Jan 1 00:00 /home/benutzer/.ssh -rw------- 00 benutzer benutzer 1,0M Jan 1 00:00 /home/benutzer/.ssh/id_rsa -rw-r--r-- 00 benutzer benutzer 1,0M Jan 1 00:00 /home/benutzer/.ssh/id_rsa.pub -rw------- 00 benutzer benutzer 1,0M Jan 1 00:00 /home/benutzer/.ssh/known_hosts sudo chmod 755 $HOME sudo chmod 700 $HOME/.ssh/.ssh/id_rsa sudo chmod 700 $HOME/.ssh/.ssh/known_hosts sudo chmod 644 $HOME/.ssh/.ssh/id_rsa.pub |
X Forwarding für GUI
Das X Forwading kann mit der Option < X11Forwarding yes > in der SSH Konfiguration (/etc/ssh/sshd_config) aktiviert werden. Ist die Datei < .Xauthority > im Homeverzeichnis des Hosts nicht vorhanden oder kommt es zu Fehlermeldungen beim Ausführen von Anwendungen bezüglich des X Forwardings kann ein Neuerstellen der Datei Abhilfe schaffen. Nachdem Login auf dem Host wird eine neue .Xauthority Datei folgendermaßen erstellt:
1 2 3 4 5 |
mv .Xauthority old.Xauthority touch ~/.Xauthority xauth generate :0 . trusted xauth add ${HOST}:0 . $(xxd -l 16 -p /dev/urandom) xauth list |
Alternativ kann der lokale XServer deaktiviert werden, um das X Forwarding zu erzwingen. Die lokale Deaktivierung erfolgt durch folgenden Eintrag in der Datei /etc/ssh/sshd_config :
1 |
X11UseLocalhost no |
Nachdem der SSH Dienst neu gestartet wurde (sudo systemctl restart sshd) ist das XForwarding nun aktiv. Um XForwarding auch für Root nutzen zu können, wird die versteckte Datei .Xauthority in /root verlinkt:
1 |
sudo ln -s $HOME/.Xauthority /root/. |
by Speefak| www.thomas-krenn.com