Ich habe die .ssh / authorized_keys eingerichtet und kann mich mit dem neuen "Benutzer" mit dem pub / private Schlüssel anmelden. Ich habe auch "Benutzer" zur sudoers-Liste hinzugefügt. Das Problem, das ich jetzt habe, ist wann Ich versuche, einen sudo-Befehl auszuführen, der etwa so einfach ist:
$ sudo cd /root
Es fordert mich zur Eingabe meines Passworts auf, funktioniert aber nicht (ich verwende das von mir festgelegte Passwort für den privaten Schlüssel).
Außerdem habe ich das Passwort des Benutzers mit deaktiviert
$ passwd -l user
Was vermisse ich?
Irgendwo werden meine ersten Bemerkungen missverstanden ...
Ich versuche, mein System abzusichern. Das ultimative Ziel ist die Verwendung von Pub / Private-Schlüsseln für Anmeldungen im Gegensatz zur einfachen Kennwortauthentifizierung. Ich habe herausgefunden, wie man das alles über die authorized_keys-Datei einrichtet.
Außerdem werde ich letztendlich Server-Anmeldungen über das Root-Konto verhindern. Aber bevor ich das tue, brauche ich sudo, um für einen zweiten Benutzer zu arbeiten (den Benutzer, mit dem ich mich die ganze Zeit im System anmelde).
Für diesen zweiten Benutzer möchte ich regelmäßige Kennwortanmeldungen verhindern und nur Anmeldungen mit öffentlichen / privaten Schlüsseln erzwingen. Wenn ich den Benutzer nicht über "passwd -l user ..." sperre, kann ich trotzdem einen Schlüssel verwenden Holen Sie sich mit einem normalen Passwort in den Server.
Aber was noch wichtiger ist, ich muss sudo dazu bringen, mit einem Pub / Private Key-Setup mit einem Benutzer zu arbeiten, dessen / dessen Passwort deaktiviert ist.
Bearbeiten: OK, ich denke, ich habe es (die Lösung):
1) Ich habe / etc / ssh / sshd_config angepasst und festgelegt. PasswordAuthentication no
Dadurch werden SSH- Kennwortanmeldungen verhindert. ( Stellen Sie sicher, dass Sie zuvor einen funktionierenden öffentlichen / privaten Schlüssel eingerichtet haben
2) Ich habe die Sudoer-Liste angepasst visudo
und hinzugefügt
root ALL=(ALL) ALL
dimas ALL=(ALL) NOPASSWD: ALL
3) root ist das einzige Benutzerkonto, das ein Passwort hat. Ich teste mit zwei Benutzerkonten "dimas" und "sherry", für die kein Passwort festgelegt wurde (Passwörter sind leer, passwd -d user
).
Das Obige verhindert im Wesentlichen, dass sich jeder mit Passwörtern beim System anmeldet (ein öffentlicher / privater Schlüssel muss eingerichtet sein).
Zusätzlich haben Benutzer in der Sudoer-Liste Administratorrechte. Sie können auch su
auf verschiedene Konten. "Dimas" kann also grundsätzlich, "dimas" sudo su sherry
jedoch NICHT su sherry
. Ebenso kann jeder Benutzer, der NICHT in der sudoers-Liste steht, NICHT su user
oder sudo su user
.
ANMERKUNG Das oben Genannte funktioniert, wird jedoch als unzureichende Sicherheit angesehen. Jedes Skript, das als "dimas" - oder "sherry" -Benutzer auf Code zugreifen kann, kann sudo ausführen, um Root-Zugriff zu erhalten. Ein Fehler in ssh, durch den sich Remotebenutzer trotz der Einstellungen anmelden können, eine Remotecodeausführung in so etwas wie Firefox oder ein anderer Fehler, durch den unerwünschter Code ausgeführt werden kann, wenn der Benutzer sich als Root anmeldet, können nun ausgeführt werden. Sudo sollte immer ein Passwort erfordern, oder Sie können sich auch als root anstelle eines anderen Benutzers anmelden.