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.
Jetzt ändere ich gemäß https://www.thomas-krenn.com/de/wiki/OpenSSH_Public_Key_Authentifizierun ... die sshd_config
So bekomme ich beim erneuten Verbindungsversuch das hier:
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
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:
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 299657
Url: https://administrator.de/forum/ssh-zugang-nur-per-pub-priv-key-problem-mit-config-299657.html
Ausgedruckt am: 22.04.2025 um 11:04 Uhr
10 Kommentare
Neuester Kommentar
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.
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)
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.:
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
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

Moin.
Gruß jodel32
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.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
The execute bit allows the affected user to enter the directory, and access files and directories inside
Gruß jodel32

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 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.