Passwortlose SSH-Anmeldung mit SSH-Schlüsselpaar oder YubiKey am Synology NAS
Die Anmeldung an einem Synology NAS via SSH lässt sich relativ einfach konfigurieren. Bei dieser Anmeldemethode muss man aber ständig das Passwort eingeben, was auch mit einem Passwortmanager nervig sein kann.
Das ganze Anmeldeverfahren lässt sich auch passwortlos mithilfe eines SSH-Keys durchführen. Jeder kann ein solches Schlüsselpaar einfach erstellen und damit die Anmeldung sehr sicher und einfach gestalten, und dazu ohne Passworteingabe.
Besitzer eines YubiKeys können den darauf gespeicherten und umgemodelten GPG-SSH-Schlüssel für die Anmeldung am Synology NAS verwenden und das auch ohne Eingabe eines Passworts. Natürlich muss der YubiKey GPG unterstützen und ein paar Programme auf dem Client vorhanden sein.
Achtung
Wenn ihr in der nachfolgenden Konfiguration einen Fehler macht, könnt ihr euch von der Synology aussperren. Eine Anmeldung per SSH ist dann nicht mehr möglich, funktioniert aber nach wie vor über den Webbrowser. siehe auch 👉 Fallback
Synology NAS - Vorbereitung für SSH-Anmeldung
Damit man sich überhaupt per SSH an einem Synology NAS anmelden kann, muss man die Form der Anmeldung erst einmal in der Systemsteuerung aktivieren. Dazu meldet ihr euch an der Weboberfläche eures Synology NAS an und hangelt euch bis zu den Systemsteuerungen durch: Systemsteuerungen --> Terminal & SNMP --> Terminal
Danach solltet ihr euren Benutzer, der sich per SSH am Synology anmelden soll, unbedingt zur Administratoren
-Gruppe hinzufügen.
Nach dem Speichern der SSH-Einstellungen kann sich euer Benutzer im gleichen Netzwerk schon per SSH an dem NAS anmelden:
bashbentuzer@ip-adresse:22
Die SSH-Session öffnet sich und ihr müsst das Passwort eures Benutzers eingeben. Nach der erfolgreichen Anmeldung seht ihr eine Fehlermeldung, dass kein Home-Verzeichnis gefunden wurde.
Ein Home-Verzeichnis pro Benutzer ist aber Voraussetzung, dass eine passwortlose Anmeldung mit SSH-Schlüsselpaar oder dem YubiKey erfolgen kann. In diesem Verzeichnis wird der Unterordner .ssh
erstellt, wo alle Schlüssel für die Anmeldung hinterlegt werden.
Das Home-Verzeichnis wird über die Weboberfläche in den Systemeinstellungen
angelegt.
Meldet ihr euch per SSH an eurem NAS an, ist die Fehlermeldung verschwunden. Den vollständigen Pfad zum Home-Verzeichnis könnt ihr euch mit dem Befehl anzeigen lassen.
pwd
Der Pfad sollte so aussehen:
/var/services/homes/benutzername
Nach diesem Schritt ist die gesamte weitere Konfiguration nur noch über die Konsole möglich. Über die Weboberfläche lassen sich die erforderlichen Einstellungen nicht oder teilweise nur sehr umständlich vornehmen.
SSH-Schlüssel-Paar anlegen - ohne YubiKey
Wenn ihr über keinen YubiKey verfügt und euch noch ein SSH-Schlüsselpaar erzeugen möchtet, findet ihr hier eine detaillierte Anleitung:
👉 Zugriff via SSH ohne Passworteingabe; Anmeldung erfolgt durch ausgetauschten SSH-Schlüssel
Beachtet dabei, dass ihr die Schlüssel über ein vertrauenswürdiges und sicheres Betriebssystem erzeugen solltet. Das ist zum Beispiel in einer virtuellen Box möglich, die ihr nur zu diesem Zweck verwendet. Auch dazu findet ihr eine detaillierte Anleitung hier im Blog. Die Installation wird am Beispiel eines Ubuntu aufgezeigt. 👉 Ubuntu virtualisieren
Nachdem ihr nun eure eigenen SSH-Schlüssel habt, oder bereits über einen YubiKey verfügt, kann es mit der Konfiguration des Synology NAS weitergehen.
Passwortlose SSH-Anmeldung am Synology NAS einrichten
Meldet euch an eurem Synology NAS per SSH mit eurem Benutzer an, den ihr der Administratoren-Gruppe hinzugefügt habe.
Führt den Befehl pwd
aus, um zu prüfen, ob ihr euch auch im richtigen Home-Verzeichnis befindet.
Nun müsst ihr folgendes machen
- Verzeichnis
.ssh
anlegen - Datei
authorized_keys
mit eurem öffentlichen Schlüssel erstellen - Zugriffsrechte für das Verzeichnis und die Datei richtig vergeben
sshd_config
-Datei für die SSH-Key-Anmeldung anpassen- SSH-Dienst neu starten
ACHTUNG! Die Rechte für das ssh-Verzeichnis und für die authorized_keys
-Datei sind zwingend anzupassen! Solltet ihr das nicht machen, ist eine SSH-Anmeldung über diese Anmeldemethode nicht möglich.
ssh-Verzeichnis anlegen
Im ersten Schritt ist das .ssh
-Verzeichnis im Home-Verzeichnis eures Benutzers anzulegen.
Prüft im ersten Schritt nochmal, ob ihr euch im richtigen Verzeichnis befindet
pwd
Anschließend legt ihr das Verzeichnis an
mkdir .ssh
Ihr könnt das gleich prüfen, indem ihr den Befehl eingebt.
ls -la
Ihr seht bei dem Befehl auch gleich, dass euer Benutzer Eigentümer der Datei ist. Das wird in einem der kommenden Schritte geändert, damit die Anmeldung per SSH auch wirklich funktioniert.
authorized_keys-Datei erstellen
In diesem Schritt habt ihr zwei Möglichkeiten euren vorhandenen Public Key auf das Synology NAS zu bekommen:
- Kopieren über die Zwischenablage
- vorhandene Pub-Key-Datei per SCP (= Secure Copy)
Öffentlichen SSH-Schlüssel über die Zwischenablage kopieren
Der einfachste Weg ist das Kopieren eures öffentlichen Schlüssels über die Zwischenablage eures Clients. Dazu kopiert ihr die Passphrase ganz einfach und fügt sie nach dem Ausführen des folgenden Befehls einfach in die Datei ein: (Also ein klassisches Strg + C und Strg + V)
vim ~/.ssh/authorized_keys
Ihr speichert die Datei ab, indem ihr Esc
drückt und dann die folgenden Zeichen eingebt :wq
.
Öffentlichen SSH-Schlüssel mit SCP kopieren
Habt ihr euren privaten Schlüssel bereits in einer Datei auf einem anderen Client/Server liegen, könnt ihr die ganz einfach per SCP auf das Synology NAS kopieren. Legt eine Kopie der Datei an und benennt diese um in authorized_keys
, falls noch nicht geschehen.
Habt ihr ein Linux-System, kann das automatisch SCP und ihr braucht keine weitere Software. Verwendet ihr Windows könnt ihr WinSCP nutzen.
Auf der Konsole lt. der Befehl zum Übertragen:
scp authorized_keys benutzername@ip-adresse-des-synology-nas:/var/services/homes/benutzername
Ist euer NAS über das Internet erreichbar und ihr habt den SSH-Port geändert, müsst ihr den Befehl anpassen. Ersetzt das xxx hinter dem -P durch euren festgelegten Port zum Übertragen der Datei
scp -P 55555 authorized_keys benutzername@ip-adresse-des-synology-nas:/var/services/homes/benutzername
Bestätigt die Meldung, dass ihr dem Server vertraut und gebt euer Passwort ein. Anschließend wird die authorized_keys
-Datei in euer Home-Verzeichnis auf dem Synology NAS übertragen.
Ihr kopiert die Datei dort mit dem Befehl an den richtigen Ort im Verzeichnis .ssh
:
cp authorized_keys .ssh/
Nun befindet sich die Datei am richtigen Ort und ihr könnt die Datei in eurem Home-Verzeichnis löschen:
cd /var/services/homes/benutzername rm authorized_keys
Ihr seht die Datei auch über die "File Station" nach einer Anmeldung an der Weboberfläche.
Zugriffsrechte festlegen
Die Anpassung der Rechte für die Datei ist besonders wichtig.
Ihr müsst das unbedingt vor einem Neustart des SSH-Dienstes machen, sonst könnt ihr euch per SSH nicht mehr am NAS anmelden.
chmod 0711 ~
chmod 0711 ~/.ssh
chmod 0600 ~/.ssh/authorized_keys
Mit den drei Befehlen sind die Rechte für die Datei richtig gesetzt. Das sollte dann für authorized_keys
so aussehen:
-rw------- 1 benutzername users 1868 Nov 28 19:49 authorized_keys
sshd_config anpassen
Im vorletzten Schritt ist die Datei /etc/ssh/sshd\_config
zu editieren.
Dort findet ihr die folgenden Einträge, die ihr editieren müsst. Entfernt am Anfang der jeweiligen Zeile das "#".
sudo vim /etc/ssh/sshd_config
- PubkeyAuthentication yes
- AuthorizedKeysFile .ssh/authorized_keys
- PasswordAuthentication no
- ChallengeResponseAuthentication no
ACHTUNG!!! Setzt ihr den Eintrag PasswordAuthentication
auf no
, ist ab diesem Zeitpunkt für jeden Benutzer nur noch eine Anmeldung mit einem in der authorized_keys
-Datei hinterlegten Schlüsselpaar möglich. Eine Anmeldung mit einem Passwort ist dann nicht mehr möglich.
Bevor ihr PasswordAuthentication
auf no
setzt, versucht erst einmal, ob ihr euch mit SSH-Schlüssel oder YubiKey an dem Synology anmelden könnt.
SSH-Dienst neu starten
Das wars auch schon fast. Nun den SSH-Dienst neu starten und schon ist die Anmeldung mit dem Schlüsselpaar oder dem YubiKey möglich.
ACHTUNG‼️ Wenn ihr den SSH-Dienst neu startet, werden alle bestehenden Verbindungen unterbrochen.
sudo synosystemctl restart sshd.service
Solltet ihr euch, nachdem Neustart des Dienstes nicht mehr anmelden können, dann startet die gesamte Synology NAS neu. Bei mir hat das auch geholfen. Die Konfiguration wurde dann erst "sauber" eingelesen.
Benutzer aus Administratoren-Gruppe entfernen
Die SSH-Anmeldung an eurem Synology NAS sollte nun ohne weitere Probleme funktionieren. Euren Benutzer könnt ihr deshalb wieder aus der Administratorengruppe wieder entfernen.
SSH-Anmeldung am Synology NAS über das Internet
Möchtet ihr die SSH-Anmeldung auch über das Internet mit eurer eigenen Domain ermöglicht, dann findet ihr hier die Anleitung:
👉 Synology DS218+ – via FRITZ!Box über das Internet erreichen
Fallback
Könnt ihr euch trotz Neustart nicht mehr SSH am System anmelden und es wird euch die Fehlermeldung angezeigt, dann versucht eine Verbindung über Telnet.
No supported authentication methods available.
Aktiviert dazu den Telnet-Dienst in der Systemsteuerung. Danach könnt ihr euch mit dem PuTTY via Telnet auf die Synology aufschalten. Führt die Änderungen an der sshd_config
durch und startet die NAS neu.
Versucht dann erneut die Anmeldung per SSH. Wenn die funktioniert, dann deaktiviert ihr den Telnet-Zugang wieder.
Erfolgt eine Änderung und der authorized_keys
Datei über die Weboberfläche, dann werden die Rechte der Datei geändert und eine Anmeldung mit SSH ist ab diesem Zeitpunkt für den jeweiligen Benutzer nicht mehr möglich.
Es wird dann die Fehlermeldung ausgegeben
ssh benutzer@192.168.0.122
benutzer@192.168.0.122: Permission denied (publickey).
Abhilfe kann ein anderer Benutzer schaffen, der sich mit ROOT-Rechten auf der Synology anmeldet und für den betroffenen Benutzer die Rechte der Datei auf die obigen Werte setzt.
Geht das nicht, ist nur der Weg über Telnet möglich.
Ein Telnet-Client ist auf dem lokalen Client zu installieren. Anschließend erfolgt die Anmeldung an der Synology
telnet 192.168.0.122
Trying 192.168.0.122...
Connected to synology.fritz.box.
Escape character is '^]'.
Password:
Synology strongly advises you not to run commands as the root user, who has
the highest privileges on the system. Doing so may cause major damages
to the system. Please note that if you choose to proceed, all consequences are
at your own risk.
benutzer@synology:~$ chmod 0711 ~/.ssh
benutzer@synology:~$ chmod 0600 ~/.ssh/authorized_keys
benutzer@synology:~$ sudo synosystemctl restart sshd.service
Password:
[sshd.service] restarted
Nach dem Ändern der Rechte und dem Neustart des SSH-Dienstes kann sich der Benutzer wieder mit SSH an der Synology anmelden.
Der Telnet-Zugang ist zu deaktivieren 🛑.
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
Follow Me❗️