Zum Inhalt

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.

Die hier vorgestellte Konfiguration hat bei mir so wie beschrieben funktioniert.

Ich übernehme jedoch keine Garantie für die Resultate; Ausprobieren und Implementieren der beschriebenen Vorgehensweise erfolgt ausschließlich auf eigene Verantwortung und Gefahr.

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

Synology NAS - SSH-Zugriff aktivieren

Danach solltet ihr euren Benutzer, der sich per SSH am Synology anmelden soll unbedingt zur Administratoren-Gruppe hinzufügen.

Benutzer zur Admingruppe hinzufügen

Nach dem Speichen der SSH-Einstellungen kann sich euer Benutzer im gleichen Netzwerk schon per SSH an dem NAS anmelden:

bashbentuzer@ip-adresse:22

PuTTY - SSH-Anmeldung am Synology NAS

Die SSH-Session öffnet sich und ihr müsst das Passwort eures Benutzers noch 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.

Das Home-Verzeichnis für die Benutzer könnt ihr ebenfalls sehr einfach über die Weboberfläche in den Systemeinstellungen anlegen.

Synology NAS - Benutzerverzeichnis /home erstellen

Meldet ihr euch nun 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

  1. Verzeichnis .ssh anlegen
  2. Datei authorized_keys mit eurem öffentlichen Schlüssel erstellen
  3. Zugriffsrechte für das Verzeichnis und die Datei richtig vergeben
  4. sshd\_config-Datei für die SSH-Key-Anmeldung anpassen
  5. 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 noch 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:

  1. Kopieren über die Zwischenablage
  2. 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.

File Station - authorized_keys

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
  1. PubkeyAuthentication yes
  2. AuthorizedKeysFile .ssh/authorized_keys
  3. PasswordAuthentication no
  4. 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.

Donation via PayPalDonation via LiberaPay

Donation via Bitcoin
Bitcoin Address: bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj