Deaktivieren der Kennwortauthentifizierung für bestimmte Benutzer in SSHD

7

Ich habe mehrere Beiträge gelesen, in denen es darum geht, ALLE Benutzer NUR auf die Schlüsselauthentifizierung zu beschränken. Ich möchte jedoch nur einen einzelnen Benutzer (svn) auf die Schlüsselauthentifizierung zwingen. Der Rest kann ein Schlüssel oder ein Kennwort sein.

Ich habe /programming/4241197/how-to-disable-password-authentication-for-every-users-except-several gelesen , aber es scheint, dass der Teil "match user" von sshd_config Teil von openssh- ist 5.1. Ich verwende CentOS 5.6 und habe nur OpenSSH 4.3. Ich habe momentan die folgenden Repos zur Verfügung.

$ yum repolist
Loaded plugins: fastestmirror
repo id                            repo name                                                                         status
base                               CentOS-5 - Base                                                                   enabled:  3,535
epel                               Extra Packages for Enterprise Linux 5 - x86_64                                    enabled:  6,510
extras                             CentOS-5 - Extras                                                                 enabled:    299
ius                                IUS Community Packages for Enterprise Linux 5 - x86_64                            enabled:    218
rpmforge                           RHEL 5 - RPMforge.net - dag                                                       enabled: 10,636
updates                            CentOS-5 - Updates                                                                enabled:    720
repolist: 21,918

Ich benutze hauptsächlich epel, rpmforge wird für die neueste Version (1.6) von Subversion verwendet.

Gibt es eine Möglichkeit, dies mit meinem aktuellen Setup zu erreichen? Ich möchte den Server nicht nur auf Schlüssel beschränken, denn wenn ich meinen Schlüssel verliere, verliere ich meinen Server ;-)

Nick
quelle

Antworten:

4

Sie können den Parameter PermitEmptyPasswords noin Ihrer sshdKonfiguration festlegen und die Kennwörter für einige Benutzer löschen, um die SSH-Schlüsselauthentifizierung für sie zu erzwingen.

Thomas Berger
quelle
Das scheint gut zu funktionieren. Ich denke, ich muss nur anderen Benutzern vertrauen, denen SSH nicht vertraut su svn. Gibt es eine einfache Möglichkeit, dies zu stoppen (aber vielleicht noch zuzulassen sudo su svn?)
Sie können die Verwendung von "su" auf eine bestimmte Gruppe beschränken. Sie sollten sich dort umsehen, /etc/pam.d/suSie werden diese Zeile finden:# Uncomment the following line to require a user to be in the "wheel" group.
Thomas Berger
Das funktioniert WIRKLICH gut - danke! Ich habe auch scponlyc auf der Box konfiguriert, damit einige Benutzer root-inhaftiert werden können.
Nick
14

Fügen Sie Ihrer sshd_config-Datei einen Match-Block hinzu. Etwas wie das:

Match Group SSH_Key_Only_Users
    PasswordAuthentication no

Oder wenn es wirklich ein Benutzer ist

Match User Bad_User
    PasswordAuthentication no

Sehen Sie man sshd_configfür weitere Informationen auf , was Sie bieten kann und welche Einschränkungen können Sie in sie.

Chris S.
quelle
Dies war der Vorschlag in stackoverflow.com/questions/4241197/… - es war jedoch OpenSSH 5.1 erforderlich und ich verwende 4.3 (ich möchte lieber nicht auf eine Version aktualisieren, die von CentOS 5.6 nicht offiziell unterstützt wird). Ich überprüfte man sshd_configund konnte keine Erwähnung sehen Match. Ich stimme jedoch zu, dass wenn ich auf 5.1 wäre, dies die Antwort wäre (wie im anderen Beitrag), aber ich glaube nicht, dass es in 4.3 funktionieren wird.
Nick
Ich entschuldige mich dafür, dass CentOS keine so alte Version von SSHd verwendet. OpenSSH 4.3 ist vom 1. Februar 2006; Wofür zum Teufel benutzen sie das noch?
Chris S
1
Nicht sicher, aber ich gehe davon aus, dass es immer noch Sicherheitsupdates erhält?! Die vollständige Version lautet: openssh.x86_64 4.3p2-72.el5_6.3 Interessanterweise sollte EL6 laut der folgenden URL jetzt bis zu OpenSSH 5.3 verfügbar sein ... github.com/repoforge/rpms/blob/master/specs/openssh/… Mein Server meldet: $ cat /etc/redhat-release CentOS release 5.6 (Final) Es ist manchmal so, wenn Ich schätze die Einfachheit von Betriebssystemen wie Windows und in gewissem Maße auch von OS X. Sie müssen sich nicht mit all dieser Abhängigkeit herumschlagen;)
Nick
2

Ich habe gerade auf die harte Tour gelernt, dass CentOS 5 (mit den neuesten Updates ab heute) den Match- Befehl nicht unterstützt, indem ich mich von einem Remote-Server ausgesperrt habe. Lustige Zeiten.

Seien Sie also gewarnt, wenn Sie versuchen, den Befehl Match zu CE5 hinzuzufügen, und wenn Sie den Dienst sshd neu starten , wird dies nicht der Fall sein. Sobald Sie Ihren sshd-Client schließen, werden Sie gesperrt, bis Sie sich über die Konsole wieder anmelden können, um diese beiden Zeilen zu löschen.

Fred
quelle