henere
Goto Top

SSH Zugang nur per pub-priv Key - Problem mit Config

Hallo,

ich möchte mein Ubuntu 14.04 LTS absichern.
Dazu habe ich mit puttygen ein Pub/priv Key erzeugt und den pulic Key in /root/.ssh/authorized_Keys abgelegt.
Den privaten Key habe ich dann in Putty zu der Verbindung hinzugefügt.

Versuche ich mich nun einzuloggen so fragt er nach der Passphrase und ich bin eingeloggt.

Using username "root".  
Authenticating with public key "dsa-key-20160320"  
Passphrase for key "dsa-key-20160320": GEHEIMERKEY  
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-83-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Sun Mar 20 23:50:09 CET 2016

Jetzt ändere ich gemäß https://www.thomas-krenn.com/de/wiki/OpenSSH_Public_Key_Authentifizierun ... die sshd_config

DenyUsers root
Match User root
       PasswordAuthentication no

So bekomme ich beim erneuten Verbindungsversuch das hier:

ssh refuse

Was mache ich falsch ?

Mein Ziel ist es, dass sich nur ein unprivilegierter User am System mit Key-File anmelden darf, der dann mit dem richtigen Passwort su - machen kann.

Danke und Grüße, Henere

Content-Key: 299657

Url: https://administrator.de/contentid/299657

Printed on: April 19, 2024 at 01:04 o'clock

Member: Henere
Henere Mar 21, 2016 at 02:23:04 (UTC)
Goto Top
Servus, 2,5h später komme ich da immer noch nicht weiter.
Selbst wenn ich den pub-key in die authorized_keys eines einzelnen Users lege, kann ich mich nicht anmelden. Er kommt dann immer mit der Meldung oben im screenshot.
Wieso immer root ? Das verstehe ich hier nicht.
Member: Sheogorath
Solution Sheogorath Mar 21, 2016 updated at 12:46:55 (UTC)
Goto Top
Moin,

Naja, alle (mir bekannten) Linuxdistributionen sind anders als Windows etwas penibel was Groß- und Kleinschreibung angeht.

Deine Datei "/root/.ssh/authorized_Keys" ist also eine andere als die eigentlich gesuchte "/root/.ssh/authorized_keys".

Sprich dein System findet die Datei nicht, kann somit den Key nicht lesen und was das heißt siehst du ja selbst. Die Authentifizierung schlägt fehl.

Außerdem versuchst du dich als root anzumelden was du aber zugleich oben drüber verbietest. das wird also auch kaputt gehen.

Also solltest du dir einen Benutzer anlegen. (nennen wir ihn mal netterweise horst)

Dann solltest du dich als "horst" (auch hier die Groß-/Kleinschreibung beachten) anmelden ("su horst" als root) und deinen ssh key hinterlegen.

# erst ein Verzeichnis erstellen
mkdir ~/.ssh
# Das Verzeichnis "sichern" (Nur Besitzer darf lesen und schreiben) 
chmod 700 ~/.ssh 
# Die Schlüsseldatei öffnen
nano ~/.ssh/authorized_keys

Jetzt solltest du einen Texteditor vor dir haben. Hier solltest du deinen SSH Key einfügen (Den Public-Key, da du vermutlich putty-gen benutzt hast, den Teil der irgendwie in der Mitte steht. Es steht in jedem Fall "authorized_keys" dabei) und nun die Datei speichern (Strg + O) und beenden (Strg + X)

Zu guter Letzt noch die Datei selbst sichern (nur Besitzer darf "alles" tun)
chmod 600 ~/.ssh/authorized_keys

Jetzt solltest du testen ob du dich per public-key authentifizieren kannst (Hier sollte man nicht vergessen diesen in Putty zu hinterlegen. Wie das geht verraten dir gefühlt 1000 Tutorials)

Nun kannst du von diesem Benutzer "horst" jederzeit "su" nutzen um root zu werden. Alternativ solltest du dich mit "sudo" vertraut machen

Zuletzt solltest du noch entsprechende Änderungen in /etc/ssh/sshd_config vornehmen. z.B.:

PubkeyAuthentication yes
PermitRootLogin no
PasswordAuthentication no

Mehr sollte nicht nötig sein. "DenyUser" verbietet Nutzern grundsätzlich sich per SSH anzumelden, ist aber für root nicht der optimale Weg. Dafür gibt es eine separate Option "PermitRootLogin" die übrigens noch vielschichtiger ist.

Edit: Die Option "MatchUser" ist hier auch nur bedingt sinnvoll, um nochmal die ohnehin schon verbotene Passwortauthentifizierung erneut zu verbieten.

Das sollte helfen ;)

Gruß
Chris
Member: Sheogorath
Solution Sheogorath Mar 21, 2016 at 02:30:03 (UTC)
Goto Top
Moin,

Ach ja, warum immernoch root?

check mal in deinen Putty settings "Connection > Data" und wegen deines SSH keys: "Connection > SSH > Auth"

Gruß Chris
Member: Henere
Henere Mar 21, 2016 at 03:11:55 (UTC)
Goto Top
das oben mit dem großen K war ein Teppfehlir. Sorry dafür.

Danke, das root in putty hatte ich übersehen. Nach Deiner Anleitung klappt es nun. Ein fettes Dankeschön an dieser Stelle !

Grüße, Henere
Member: Henere
Henere Mar 21, 2016 at 03:24:44 (UTC)
Goto Top
Noch ne kurze Anmerkung... wenn .ssh nur 600 hat, dann klappt die Key-AUTH nicht. Ich muss auf 700 gehen, damit das klappt.
Zumindest unter Ubuntu 14.04 LTS
Mitglied: 114757
114757 Mar 21, 2016 updated at 09:06:49 (UTC)
Goto Top
Moin.
Zitat von @Henere:

Noch ne kurze Anmerkung... wenn .ssh nur 600 hat, dann klappt die Key-AUTH nicht. Ich muss auf 700 gehen, damit das klappt.
Zumindest unter Ubuntu 14.04 LTS
Um in ein Verzeichnis zu wechseln benötigt man generell das Execute Bit auf dem Verzeichnis.
The execute bit allows the affected user to enter the directory, and access files and directories inside

Gruß jodel32
Member: Henere
Henere Mar 21, 2016 at 11:13:41 (UTC)
Goto Top
Servus Jodel,

das mit dem Verz. wechseln ist mir klar. Aber wenn ich das Verzeichnis NACH dem editieren der authorized_keys auch 600 gesetzt habe, konnte ich mich nicht anmelden mit dem Schlüsselpaar. Erst das 700 hat es wieder zugelassen.
Egal, läuft.

Grüße, Henere
Mitglied: 114757
Solution 114757 Mar 21, 2016 updated at 12:06:06 (UTC)
Goto Top
Zitat von @Henere:
das mit dem Verz. wechseln ist mir klar. Aber wenn ich das Verzeichnis NACH dem editieren der authorized_keys auch 600 gesetzt habe, konnte ich mich nicht anmelden mit dem Schlüsselpaar. Erst das 700 hat es wieder zugelassen.
du brauchst das Execute Bit damit der SSHD-Daemon in das Verzeichnis wechseln kann. Sonst heißt es du kommst hier net rein face-smile
Member: Henere
Henere Mar 21, 2016 at 12:17:34 (UTC)
Goto Top
Hatte die 600 aus der Anleitung von Sheogorath weiter oben.
Member: Sheogorath
Solution Sheogorath Mar 21, 2016 at 12:46:37 (UTC)
Goto Top
Stimmt, das war ein Fehler meinerseits, ich hab es mal eben korrigiert.