PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SSH für normale User mit Keys absichern



Dunji
15.07.2009, 11:17
Hallo

ich möchte den SSH-Zugriff auf unser CS407 (DSM2.1) für normale User mittels PublicKey-Authentication ermöglichen.

Leider funktioniert überhaupt nichts...

Ich habe mittels ipkg das Paket OpenSSH installiert. Dann habe ich einen User angelegt, /root/.profile in sein Home-Dir kopiert und entsprechend angepasst. In /etc/passwd habe ich die Shell gesetzt. Im Home-Dir habe ich im Subdir .ssh die Datei authorized_keys angelegt und den PublicKey des Clients eingetragen.

Dann habe ich in Putty den Private-Key unter Auth eingetragen.
Der Server meldet jedoch immer "Server refused our key".

Wie mir scheint habe ich noch ein paar Lücken bei den Grundkenntnissen im Zusammenhang mit OpenSSH.

Wird bei der Installation von OpenSSH via ipkg der SSH-Daemon automatisch ersetzt oder muss da noch manuell etwas gemacht werden? (Ich habe nur das Paket OpenSSH installiert)
Der Output von ps ergibt, dass /opt/sbin/sshd läuft. Ich nehme an, dass dies der OpenSSH-Daemon ist!?
Nach einem Restart von /usr/syno/etc.defaults/S95sshd läuft anschliessend /usr/syno/sbin/sshd. Wieso wird beim Reboot ein anderer Daemon geladen?
Welches Config-File ist nun das relevante? Das in /etc/ssh oder das in /opt/etc/openssh?
Auch mit PasswordAuthentication kann sich nur der User root und admin einloggen. Ein normaler User jedoch nicht. Woran kann das liegen?
Sollte die KeyAuthentication auch für den User root funktionieren, wenn PermitRootLogin auf Yes ist? Auch dann erhalte ich "Server refused our key"
Ich habe mal in beiden sshd_config files die Optionen "PubkeyAuthentication" auf "yes" und "AuthorizedKeysFile" auf ".ssh/authorized_keys" gesetzt. Muss ich noch irgendwas mit den known_hosts machen?


Ich wäre sehr dankbar, wenn mir jemand damit helfen könnte...

jahlives
15.07.2009, 11:44
Hast du den folgenden Wikibeitrag (http://www.synology-wiki.de/index.php/Ssh_mit_Zertifikaten_absichern) zum Thema gelesen?

Dunji
15.07.2009, 12:04
Ja habe ich gelesen und auch so umgesetzt.

Inzwischen konnte ich auch einige meiner Fragen selber lösen:

Das Config-File, welches OpenSSH benutzt ist in /opt/etc/openssh.
Der root-Access funktioniert nun auch mit PublicKey-Authentication.
Normale User können sich nicht einloggen, weder mit Passwort noch mit Keys.


Es bleiben also noch folgende Fragen für mich offen:

Wie wird OpenSSH beim Reboot gestartet? Offensichtlich nicht über /usr/syno/etc.defaults/rc.d/S95sshd, da dann ein anderer Prozess läuft.
Wieso funktioniert SSH nicht für normale User?


Vielen Dank

jahlives
15.07.2009, 12:09
Es bleiben also noch folgende Fragen für mich offen:

Wie wird OpenSSH beim Reboot gestartet? Offensichtlich nicht über /usr/syno/etc.defaults/rc.d/S95sshd, da dann ein anderer Prozess läuft.
Wieso funktioniert SSH nicht für normale User?


1. Das Startscript für dieses Paket und alle via ipkg installierten Pakete liegen unter /opt/etc/init.d
2. Da gibt es einige Möglichkeiten: Kann sich denn dieser User vie telnet anmelden? Wenn nein, dann gibt's wahrscheinlich ein Problem in /etc/passwd Die erforderlichen Verzeichnisse hast du angelegt und mit den korrekten Rechte resp Eigentümerschaft versehen?

Dunji
15.07.2009, 12:26
Ok, das klappt mit /opt/etc/init.d/S40sshd

Ja, der Benutzer kann sich in telnet einloggen. Auch "su - Remote" funktioniert und das Home-Dir wird korrekt gesetzt.
Die Rechte des Directories .ssh sind wie folgt gesetzt:
$ ls -al ~/.ssh
drwx------ 2 Remote users 4096 Jul 15 13:26 .
drwxr-xr-x 3 Remote users 4096 Jul 15 13:28 ..
-rw------- 1 Remote users 226 Jul 15 13:30 authorized_keys

jahlives
15.07.2009, 12:38
Die Rechte von .ssh und authorized_keys sehen imho gut aus. Kannst du mal noch den Eintrag zum User Remote aus /etc/passwd posten? Die komplette Zeile...

Dunji
15.07.2009, 12:43
/etc/passwd:

Remote:x:1036:100::/volume1/users/Remote:/bin/sh

jahlives
15.07.2009, 12:56
Auch diese Einträge sehen gut aus...
Liegen also die ssh Dateien unter /volume1/users/Remote/.ssh/authorized_keys ?
Was sagen denn die Fehlerlogs wenn du dich als Remote via ssh anmelden willst? Diese Logs liegen in /var/log/messages. Ich würde mal folgendes vorschlagen. Erstmal als root auf der Konsole


tail -f /var/log/messages

machen und diese Konsole offenhalten. Dann als Remote via ssh auf einer neuen Konsole einloggen und schauen ob neue Meldungen in die Fehlerlogs geschrieben wurden.

Dunji
15.07.2009, 13:01
Ja, korrekt, authorized_keys liegt im Home des Users Remote unter .ssh, und der Inhalt ist der Public Key, den ich aus dem PuttyGen kopiert habe. (Bei root funktionierts bestens damit).

Also, beim SSH-Login gebe ich den Benutzernamen ein: Remote
Dann erscheint "Server refused our key".
In /var/log/messages passiert bisher noch nichts!

Wenn ich dann das Passwort für Remote eingebe, kommt folgende Zeile:

Jul 15 14:13:35 sshd[4329]: error: Could not get shadow information for NOUSER

Wo er wohl das NOUSER her hat?

jahlives
15.07.2009, 13:04
Hast du denn einen Eintrag für Remote in /etc/shadow? (http://de.wikibooks.org/wiki/Linux-Kompendium:_shadow)

Dunji
15.07.2009, 13:11
Ja, der Eintrag existiert.

Der User admin funktioniert übrigens auch, sowohl via Passwort als auch mit Keys. Nur mein eigener User nicht :mad:

jahlives
15.07.2009, 13:17
Jetzt würde ich mal den User im Diskstation Manager löschen und neuanlegen (dabei auch gleich konsequente Kleinschreibung verwenden, also besser remote als Remote)

Dunji
15.07.2009, 13:19
Ups, der Benutzer war im Manager deaktiviert (da muss ich ein Wörtchen mit dem Chef wechseln, der das deaktiviert hat!)
Und siehe da, jetzt funktionierts.

Ich danke Dir vielmals für die Hilfe!