====== DSM - SSH via Schlüssel-Authentifizierung ====== Natürlich können für die **SSH-Verbindung** zur [[https://amzn.to/3sWcI4N|DiskStation ]][[https://amzn.to/3sWcI4N|{{fa>amazon?12}}]] auch **Schlüsselpaare** verwendet werden. In diesem Artikel werde ich Euch zeigen, wie Ihr dies einrichtet. ===== Voraussetzung ===== Voraussetzung für die Verwendung der **Public-Key Authentifizierung** ist, dass Ihr in Eurer **DiskStation** **SSH** eingerichtet habt. Eine Anleitung dazu findet Ihr unter [[wiki:synology-diskstation:dsm-ssh]]. Des Weiteren müsst Ihr die Benutzer angelegt, einen Key generiert und diesen übertragen haben. Dies ist in der Anleitung [[wiki:linux:konnektivitaet:linux-ssh-key]] beschrieben. In diesem Beispiel, heißen die Benutzer **rsb**. ==== Information zur Umgebung ==== Das Ganze wurde auf einem [[https://amzn.to/3sTgtb6|Raspberry Pi 4 ]][[https://amzn.to/3sWcI4N|{{fa>amazon?12}}]] mit **Ubuntu Mate 20.10** durchgeführt. Bei der **DiskStation** handelt es sich um eine ältere **DS215j mit aktuellem DSM 6.2.3**. Die Umsetzung ist jedoch auch mit einer aktuellen **DiskStation** und jeglicher Linux-Distribution möglich. Nur die Befehle können hier abweichen. ===== Anpassungen ===== Die **DiskStation** hat hier ein paar seltsame Eigenheiten. Um die Schlüssel mit der **DiskStation** verwenden zu können, müssen noch ein paar Anpassungen durchgeführt werden, nachdem Ihr den Key übertragen habt. ==== Berechtigungen anpassen ==== Das Home-Verzeichnis des Benutzers auf der **DiskStation** benötigt die Rechte **711**, diese passen wir mit dem Befehl **chmod** an. rsb@PortRoyal:~$ cd ..\\ rsb@PortRoyal:/var/services/homes$ ls -la | grep rsb \\ drwxrwxrwx 4 rsb users 4096 Mar 6 19:46 rsb\\ rsb@PortRoyal:/var/services/homes$ chmod 711 rsb\\ rsb@PortRoyal:/var/services/homes$ ls -la | grep rsb \\ drwxrwxrwx 4 rsb users 4096 Mar 6 19:46 rsb\\ **Zur Erklärung** | **Befehl** | **Beschreibung** | | cd .. | Wechsel ins höhere Verzeichnis, hier /var/services/home | | ls -la | grep rsb | Anzeigen der Berechtigung des Ordners rsb (hier Berechtigung 777) | | chmod 711 rsb | Anpassen der Berechtigung des Ordners rsb | | ls -la | grep rsb | Erneutes Anzeigen der Berechtigung des Ordners rsb (jetzt 711) | Die gleiche Berechtigung setzen wir für den Ordner **.ssh** rsb@PortRoyal:~$ cd ~\\ rsb@PortRoyal:~$ ls -la | grep .ssh\\ drwxrwxrwx 2 rsb users 4096 Mar 6 19:28 .ssh\\ rsb@PortRoyal:~$ chmod 711 .ssh\\ rsb@PortRoyal:~$ ls -la | grep .ssh\\ drwx--x--x 2 rsb users 4096 Mar 6 19:28 .ssh\\ Und Abschließend die Berechtigung **600** für die Datei **authorized_keys** rsb@PortRoyal:~$ cd .ssh\\ rsb@PortRoyal:~/.ssh$ ls -la | grep authorized_keys \\ -rwxrwxrwx 1 rsb users 734 Mar 6 19:28 authorized_keys\\ rsb@PortRoyal:~/.ssh$ chmod 600 authorized_keys \\ rsb@PortRoyal:~/.ssh$ ls -la | grep authorized_keys \\ -rw------- 1 rsb users 734 Mar 6 19:28 authorized_keys\\ Hier nochmal die Befehle kurz und Knapp in der Übersicht chmod 711 ../rsb\\ chmod 711 .ssh/\\ chmod 600 .ssh/authorized_keys \\ ==== SSH-Konfiguration anpassen ==== Anschließend müssen wir noch die **SSH-Konfiguration** in der **/etc/ssh/sshd_config** anpassen und die Authentifizierung via Schlüssel erlauben. sudo vim /etc/ssh/sshd_config Hier kommentieren wir folgende Zeilen ein und speichern die Datei mit **wq!** PubkeyAuthentication yes \\ AuthorizedKeysFile .ssh/authorized_keys \\ === Neustart === Damit die Änderungen wirksam werden, müssen wir den **SSH-Dienst** neu starten sudo synoservicectl --restart sshd ===== SSH-Test mit Schlüssel ===== Nun können wir die Verbindung mit **ssh rsb@10.10.10.20** testen. Nun sollte nicht mehr nach dem Benutzerkennwort, sondern nach dem Kennwort für den Schlüssel gefragt werden und nach Eingabe die Verbindung hergestellt werden. ===== Fazit ===== Durch die Eigenheiten der [[https://amzn.to/3sWcI4N|DiskStation ]][[https://amzn.to/3sWcI4N|{{fa>amazon?12}}]] mit der Vollberechtigung des **Home-Verzeichnisses** und der nicht aktivierten **PubkeyAuthentication** ist hier etwas Handarbeit zur Einrichtung notwendig. Euer RSB ---- {{page>impressum:ausschluss#Haftungsausschluss}} ---- ~~DISCUSSION~~