Synology DS213+ – SSH mit Zertifikaten

Auf der Synology DS213+ läuft ein Linux System. Dies kann man manchmal am bequemsten per Konsole über SSH steuern. Dabei hat man entweder die Möglichkeit eine User/Passwort Kombination oder eine User/Zertifikat Kombination zum Authentifizieren zu verwenden. Letztere ist deutlich sicherer und auch bequemer. Ich möchte daher kurz meine eigene Version der notwendigen Schritte bloggen, da die meisten verfügbaren Anleitungen nicht alle Schritte optimal für meine Situation lösen. Daher bekommt ihr hier jetzt meine Vorgehensweise, die teilweise Befehle aus den verlinkten Anleitungen nutzt:

 

1. Aktivieren des SSH/Telnet Dienstes auf der DS

Systemsteuerung, Terminal, Haken bei beiden Diensten setzen. Telnet machen wir im Moment nur an, damit wir im Notfall per Telnet uns auf die Konsole anmelden können. Dieser Dienst sollte nach erfolgreicher Konfiguration wieder dringend geschlossen werden, da die Daten unverschlüsselt übertragen werden!

2. Einloggen mittels SSH

Ich gehe mal davon aus, das jeder schon einmal SSH verwendet hat. Wenn nicht, dann gibt es z.B. hier eine gute Anleitung. Ich selber nutze Mac OS X, daher bezieht sich diese Anleitung auch nur auf Mac OS X, sollte aber mit jedem Linux ähnlich machbar sein. Windows User mögen an dieser Stelle sich über Putty informieren.

Als User verwendet man root mit dem Passwort des DiskStation admin Benutzers.

3. SSH Key generieren

Mit dem Befehl

wird ein SSH Schlüsselpaar auf der DS erzeugt. Dieses ist dann gültig für den root User. Man kann diesen Schritt aber auch für einzelne Benutzer anlegen, wenn man denn vorher unter Systemsteuerung, Benutzer, Benutzerbasis den Benutzer-Home-Dienst aktiviert hat. Damit erhält dann jeder Benutzer ein eigenes home Verzeichnis, indem dann z.B. die SSH Keys abgelegt werden können.

Bei der Erzeugung wird man nach einem Passwort gefragt. Dieses Passwort wird verwendet, um das Zertifikat vor unbefugter Benutzung zu schützen. Meine Empfehlung: Definitiv eins setzen. Man muss es dann jedes Mal vor der Verwendung des Schlüssels eingeben (es sei denn, man speichert es, aber dazu später mehr).

Aus dem erzeugten Schlüsselpaar kopieren wir jetzt den öffentlichen Schlüssel in die Datei authorized_keys:

Dieser Befehl hängt den Inhalt von id_rsa.pub an das Ende von authorized_keys und erzeugt die Datei, falls sie noch nicht existiert. Die Datei wird jetzt vor neugierigen Blicken auf dem System geschützt, es darf  nur noch root die Datei lesen:

Die Inhalte des privaten und des öffentlichen Schlüssels sichern wir jetzt auf eurem PC. Dazu könnt ihr am einfachsten die Inhalte mit dem cat Befehl anzeigen lassen und kopiert sie einfach aus dem Terminal in eine Datei auf eurem PC. Hier gibt es auch elegantere Methoden (mit scp rüberkopieren), aber das lasse ich im Moment um es nicht unnötig kompliziert zu machen. Kopiert den Inhalt von

in eine id_rsa_ds213plus Datei auf eurem System. Das Gleiche macht ihr auch für die Datei id_rsa.pub und kopiert sie in eine id_rsa_ds213plus.pub Datei auf eurem System:

Ihr solltet jetzt zwei Dateien haben:

  • id_rsa_ds213plus – euer privater Schlüssel
  • id_rsa_ds213plus.pub  – euer öffentlicher Schlüssel

4. SSH Daemon konfigurieren

Ihr müsst die Authentifizierung mit Zertifikaten erst noch aktivieren. Dies stellt ihr in der Datei sshd_config ein. Diese Datei findet ihr im Ordner /etc/ssh. Ich benutze den Editor vi. Die Bedienung des Editors erkläre ich jetzt nicht, da verweise ich auf diese Seite.

Es müssen jetzt folgende drei Stellen auskommentiert bzw. hinzugefügt werden:

Bevor jetzt der SSH Dienst voreilig neugestartet wird, müsst ihr erst einmal auf eurem Client die Konfiguration entsprechend anpassen.

5. SSH Client konfigurieren

Ihr habt im Schritt 3 zwei Dateien erzeugt mit dem Schlüsselpaar. Diese Dateien kopiert ihr euch in das .ssh Verzeichnis eures Benutzers und setzt die Rechte nur für diesen Benutzer mit dem Befehl

In der Datei config legen wir jetzt eine Verbindungskonfiguration an. Falls die Datei noch nicht existiert, erzeugt sie. Die Datei soll ebenfalls im .ssh Verzeichnes des Users liegen. Ihr Inhalt sieht wie folgt aus:

Wenn man jetzt ssh ds als Befehl eintippen würde, so würde dein SSH Client sich zu deiner DS unter der angegebenen IP verbinden auf Port 22, mit User root und dem privaten Schlüssel den wir vorhin kopiert hatten.

6. Testen

Der SSH Daemon muss neugestartet werden auf der DS. Dies geschieht mit dem Befehl

Anschließend ist deine aktive SSH Verbindung getrennt worden. Solltest du hier einen Fehler gemacht haben, so kommst du nicht mehr per SSH auf die DS. Hier kannst du dann aber die vorhin aktivierte Telnet Verbindung als Backup benutzen.

Verbinde dich erneut mit

Du solltest jetzt nach deinem Passwort zu dem vorhin erstellten SSH Schlüsselpaar gefragt werden. Hast du es eingegeben, so bist du direkt eingeloggt und musst nicht mehr das Passwort des DS admin verwenden.

7. Aufräumen

In der config Datei des SSH Daemons kann man jetzt noch die User/Passwort Authentifizierung abschalten. Dies geschieht mit folgender Zeile:

Nach einem Neustart des SSH Daemons (siehe oben) solltest du dich nur noch mit deinem SSH Schlüsselpaar anmelden können. Pass also gut auf sie auf!

Deaktiviere nun noch den Telnet Dienst in der Systemsteuerung der DS.

8. Optionales

Wenn du Mac OS verwendest, so wirst du bereits bei der Eingabe des Passworts für den SSH Key das Feld zum Speichern des Passwortes bemerkt haben. Wenn du diese Option wählst, so wird das Passwort in dem Mac OS Schlüsselbund hinterlegt. Ähnliche Möglichkeiten gibt es auch für Windows und Linux. Da schau am besten in den oben verlinkten Seiten nach.

8 Gedanken zu „Synology DS213+ – SSH mit Zertifikaten“

  1. Hi,

    kann dieses Zertifikat auch z.B. in ein Iphone importiert werden und den Zugriff aus dem Internet zu ermöglichen?

    Wenn ich das richtig verstehe, ist dann der Zugang nur noch über das Zertifikat möglich und die Anmeldung über Kennwort ist weg.
    Wie sieht es in den Apps von Synology aus? da eist ja eine Passworteingabe vorhanden?
    Ich habe meine Box hinter einer Fritzbox hängen und dorthin eine VPN Verbindung. Diese Verbindung kann auch mein Iphone nutzen.
    hat jetzt überhaupt noch jemand Zugang in mein Netzwerk? Ich verstehe so langsam gar nichts mehr

  2. Hallo Lars,

    nein, den SSH Key kannst du nicht auf deinem iPhone verwenden. Wenn es gejailbreaked ist, könnte es gehen, aber damit habe ich keine Erfahrung. Du musst nach wie vor mit Benutzername und Passwort dich in den Apps auf deinem iPhone bei dem NAS anmelden.

  3. danke für die Anleitung.
    für newbies noch zu erwähnen das sich die sshd_config Datei in /etc/ssh/sshd_config befindet.

  4. Hallo antra,

    vielen Dank fuer die Anleitung!
    Eine kleine Anmerkung: Unter 5. im zweiten Absatz steht, dass man ev. die Datei ‚.config‘ anlegen soll. Dieses funktioniert auf jedenfall unter Ubuntu nicht. Also nur ~/.ssh/config.

    Viele Gruesse aus dem hohen Norden!

  5. Hallo Artemis,

    danke für den Hinweis, du hast recht. Ich meinte eigentlich das .ssh Verzeichnis des Nutzers und darin die config Datei. Ich habe den Post entsprechend angepasst 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.