wie man SSH LOGON mit Kennwort für einige Benutzer sperrt?

165

Unter Linux (Debian Squeeze) möchte ich die SSH-Anmeldung mit einem Passwort für einige Benutzer (ausgewählte Gruppe oder alle Benutzer außer root) deaktivieren. Aber ich möchte nicht die Anmeldung mit Zertifikat für sie deaktivieren.

edit: vielen dank für die ausführliche antwort! Aus irgendeinem Grund funktioniert dies auf meinem Server nicht:

Match User !root
PasswordAuthentication no

... kann aber leicht durch ersetzt werden

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Stepan
quelle
Vielleicht liegt es an deiner Einrückung?
nil
7
Es ist erwähnenswert, dass diese Zeilen, die in Übereinstimmung sind, am Ende der Datei stehen sollten
zidarsk8
1
! root funktioniert auch bei mir nicht. Der zweite Ansatz hat es geschafft.
Natenho
Ich habe Fälle gesehen, in denen Match User "!root,*"die Arbeit erledigt wurde.
Roman Hocke

Antworten:

179

Versuchen Sie Matchin sshd_config:

Match User user1,user2,user3,user4
    PasswordAuthentication no

Oder nach Gruppe:

Match Group users
    PasswordAuthentication no

Oder, wie im Kommentar erwähnt, durch Verneinung:

Match User !root
    PasswordAuthentication no

Beachten Sie, dass die Übereinstimmung "bis zu einer anderen Übereinstimmungszeile oder bis zum Ende der Datei" wirksam ist . (der Einzug ist nicht signifikant)

Cakemox
quelle
4
bevorzuge Match user !rootfür diesen Fall
84104
1
Genial, ich wusste nichts über die Match-Syntax. Ein Vorschlag, den ich machen würde, ist, wenn dies ein öffentlich zugänglicher Server ist, würde ich Root-Login über SSH überhaupt nicht zulassen. Wahrscheinlich keine große Sache, wenn es intern ist ..
Safado
4
@SpacemanSpiff Dafür gibt es a) starke Passwörter und b) Denyhosts / fail2ban.
Ceejayoz
2
@ deed02392 Sie können einen Schlüssel als ein wirklich sehr starkes Passwort betrachten, wenn Sie möchten.
Ceejayoz
4
Es ist so viel stärker, dass es nicht im selben Stadion liegt, das war mein Punkt. Die Kennwortauthentifizierung sollte auch für root deaktiviert und Schlüssel nur für Anmeldungen zugelassen werden.
Deed02392
21

Matchin sshd_configfunktioniert gut. Sie sollten verwenden Match all, um den Match-Block zu beenden, wenn Sie openssh 6.5p1 oder höher verwenden. Beispiel:

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all
Trevor Hateley
quelle
Es hat bei mir nicht funktioniert ...
Dimitrios
3

Es gibt ein paar Möglichkeiten, wie Sie dies tun können - erstens könnten Sie einen zweiten sshd-Daemon auf einem anderen Port mit einer anderen Konfiguration ausführen - es ist ein bisschen hackig, aber mit etwas Chroot-Arbeit sollte es gut funktionieren.

Sie können auch die Kennwortauthentifizierung zulassen, die Kennwörter jedoch für alle Benutzer außer dem einen Benutzer sperren. Die Benutzer mit gesperrten Kennwörtern können sich weiterhin mit öffentlichen Schlüsseln authentifizieren.

mitchellhislop
quelle
-1

Sie können einfach zur Datei / etc / ssh / sshd_config gehen und eine Zeile hinzufügen, um -> AllowUsers user1 To Deny ---> DenyUsers user2 zuzulassen

Wir können die Anmeldung für eine bestimmte Gruppe von Hosts zulassen / verweigern, indem wir die Dateien hosts.allow oder hosts.deny im Ordner / etc verwenden

Sharan
quelle
-1

Aus Sicherheitsgründen müssen Sie möglicherweise bestimmte Benutzer-SSH-Zugriffe auf die Linux-Box blockieren.

Bearbeiten Sie die Datei sshd_config. Der Speicherort ist je nach Linux-Distribution manchmal unterschiedlich, befindet sich jedoch normalerweise in / etc / ssh /.

Öffnen Sie die Datei, während Sie als root angemeldet sind:

# vi /etc/ssh/sshd_config

Fügen Sie eine Zeile zum Ende der Konfigurationsdatei ein: -

DenyUsers username1 username2 username3 username4

Speichern Sie es und starten Sie die SSH-Dienste neu. Grundsätzlich ist die SSH-Anmeldung für Benutzername1, Benutzername2, Benutzername3 und Benutzername4 nicht zulässig.

Führen Sie den folgenden Befehl aus, um dasselbe erneut zu starten: -

# systemctl restart sshd

Die Anforderung wurde erfüllt. Bitte nimm den ssh von den Usern und du bekommst die Fehlermeldung "Access Denied"

Everdata-Technologien
quelle
1
Die Frage betraf das Deaktivieren der Kennwortanmeldung (aber das Beibehalten der Anmeldung mit Schlüsselauthentifizierung).
Gerald Schneider