====== 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~~