Richten Sie autorisiertes SSH mit öffentlichem Schlüssel für Nicht-Root-Benutzer ein

7

Ich konnte die SSH-Anmeldung mit öffentlichen Schlüsseln für Root-Benutzer einrichten und versuchte, dieselbe Logik für Nicht-Root-Benutzer anzuwenden. Ich habe vergeblich versucht, dieses Problem zu beheben. Ich verwende Centos sowohl für meinen lokalen Computer als auch für den Remote-Server.

Hier ist eine Übersicht meiner sshd_config-Datei auf meinem Remote-Server:

RSAAuthentication yes
PublicKeyAuthentication yes
AuthorizedKeysFile /etc/ssh/user/authorized_keys

PasswordAuthentication no

UsePAM no

PermitRootLogin without-password

Ich habe meine Datei mit autorisierten Schlüsseln von der Startseite des Benutzers nach / etc / ssh / user / autorisierte_Tasten verschoben, während ich über die Verschlüsselung von Privatverzeichnissen in Centos gelesen habe.

Ich habe auch den Besitz aller Dateien / Verzeichnisse geändert, die dem Nicht-Root-Benutzer zugeordnet sind.

Ich bin mir nicht sicher, welchen Schritt ich in meiner Konfiguration vermisse, da dieselbe Konfiguration für Root-Remote-Anmeldungen sehr gut funktioniert.

user2887201
quelle

Antworten:

7

Entfernen Sie den Eintrag authorized_keys in Ihrer Konfigurationsdatei. Starten Sie sshd neu. Erstellen Sie ein .ssh-Verzeichnis in Ihrem Nicht-Root-Benutzer-Home-Verzeichnis. Legen Sie den Schlüssel in eine Datei mit dem Namen ~ / .ssh / autorisierte Schlüssel. Erstellen Sie das Verzeichnis 0700 und die Datei authorized_keys 0644. Machen Sie dasselbe für den Root-Benutzer.

dmourati
quelle
Möchten Sie, dass ich dieselbe Datei "authorized_keys" sowohl für Root- als auch für Nicht-Root-Benutzer verwende?
user2887201
Bis zu Ihnen ...............
dmourati
Ich bekomme immer noch die gleiche Erlaubnis verweigert (publickey, gssapi-keyex, gssapi-with-mic)
user2887201
Als ich ssh user @ remotehost als Root-Benutzer ausprobierte, schlug die Authentifizierung fehl. Aber als ich versuchte, mich als "Benutzer" anzumelden, wurde die Verbindung hergestellt. Dies ist ein Anfang, vielen Dank!
user2887201
1
Die Root-SSH-Schlüsseldatei befindet sich in /root/.ssh/authorized_keys
dmourati
3

Um klar zu sein, muss sich die PUBLIC-Schlüsseldatei (z. B. ~ / .ssh / id_rsa.pub) vom Ursprungscomputer auf dem Zielcomputer in ~ / .ssh / autorisierten_keys befinden.

Wenn Sie über ~ / .ssh / id_rsa kopieren, funktioniert das nicht. Das moderne sshd besteht auch darauf, dass ~ / .ssh der Modus 700 und ~ / .ssh / autorisierte_Tasten der Modus 600 auf dem Zielcomputer sind.

Nebenbei: Wenn Sie können, verwenden Sie sudo, anstatt Root-Anmeldungen über ssh zuzulassen.

Bill McGonigle
quelle
2
Tatsächlich ist 644 für autorisierte Schlüssel in Ordnung. Letztendlich ist es eine Liste öffentlicher Schlüssel.
user9517