SSHd-Einschränkung pro Benutzerbasis

9

Ich muss bestimmte Benutzer einschränken, damit sie nur SSH mit SSH-Schlüsseln ausführen können und andere Benutzer sich mit Schlüssel oder Kennwort anmelden können.

ein Beispiel:

Ich möchte, dass sich Root-Benutzer mit dem Schlüssel remote (über sshd) anmelden können, damit kein Passwort akzeptiert wird (auch wenn das Passwort richtig ist).

und für andere Benutzer (alle im System) können sie sich mit Schlüssel und / oder Passwort anmelden

wie würde ich das machen

Alexus
quelle

Antworten:

0

Was ich tun würde, ist so einzustellen /etc/sshd/sshd_config, dass:

PermitRootLogin without-password

Nur aus Sicherheitsgründen und um zu vermeiden, dass das Root-Passwort gesperrt wird (Root kann sich nur mit einem Schlüssel anmelden).

Ich würde stattdessen AllowGroupsanstelle von verwenden AllowUser, da es für mich bequemer wäre, Benutzer zu einer Gruppe hinzuzufügen, als zu, sshd_configaber das könnte von Ihren persönlichen Vorlieben abhängen.

Golan
quelle
13

Ich denke, was Sie wollen, ist "Match User". Sie verwenden es, um einen Benutzernamen abzugleichen, und rücken dann eine Reihe von Konfigurationseinstellungen ein, die speziell für diesen Benutzer gelten.

Match User Joe
  PasswordAuthentication no

Match User Jane
  PasswordAuthentication yes

Ich verwende dies, um manchmal einen Chroot-SFTP-Zugriff für Clients einzurichten.

Devin Ceartas
quelle
Beachten Sie, dass nicht alle Einstellungen in den MatchBlock geschrieben werden können. Siehe man 5 sshd_configfür das Detail.
Am
2

Richten Sie ssh wie folgt ein:

nano /etc/ssh/sshd_config

AllowUsers username1 username2 username3

Starten Sie SSH neu

Geben Sie dann die Schlüssel für diejenigen an, die die Verwendung von Kennwörtern vermeiden möchten.

ssh-keygen wird verwendet, um dieses Schlüsselpaar für Sie zu generieren. Hier ist eine Sitzung, in der Ihr persönliches persönliches / öffentliches Schlüsselpaar erstellt wird:

#ssh-keygen -t rsa

Der Befehl ssh-keygen -t rsa initiierte die Erstellung des Schlüsselpaars.

Ich habe keine Passphrase für mein Setup eingegeben (stattdessen wurde die Eingabetaste gedrückt).

Der private Schlüssel wurde in .ssh / id_rsa gespeichert. Diese Datei ist schreibgeschützt und nur für Sie. Niemand sonst darf den Inhalt dieser Datei sehen, da damit die gesamte mit dem öffentlichen Schlüssel verschlüsselte Korrespondenz entschlüsselt wird.

Der öffentliche Schlüssel wird in .ssh / id_rsa.pub gespeichert.

Der Inhalt wird dann in die Datei .ssh / autorisierte_Tasten des Systems kopiert, auf das Sie SSH senden möchten, ohne zur Eingabe eines Kennworts aufgefordert zu werden.

#scp id_rsa.pub remote system:~/.ssh/authorized_keys

Sperren Sie das Konto endgültig (die Schlüsselauthentifizierung ist weiterhin möglich.)

# passwd -l username1
Patrick R.
quelle
das ist nicht was ich suche. Angenommen, ich möchte, dass root nur mit Schlüsseln angemeldet wird und andere Benutzer mit Schlüssel oder Passwort angemeldet werden können
alexus
Dann sperren Sie das Konto nicht mit passwd -l Benutzername1
Patrick R