Frage Wie kann ich die SSH-Anmeldung mit Passwort für einige Benutzer deaktivieren?


Unter Linux (Debian Squeeze) möchte ich die SSH-Anmeldung mit 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.

bearbeiten: Vielen Dank für die ausführliche Antwort! Aus irgendeinem Grund funktioniert das nicht auf meinem Server:

Match User !root
PasswordAuthentication no

... kann aber leicht durch ersetzt werden

PasswordAuthentication no
Match User root
PasswordAuthentication yes

145
2018-06-30 14:31


Ursprung


Vielleicht liegt es an deiner Einrückung? - nil
Es ist erwähnenswert, dass diese Zeilen unter Übereinstimmung am Ende der Datei sein sollten - zidarsk8
! root funktioniert auch nicht für mich. Der zweite Ansatz hat es geschafft. - natenho
Ich habe Fälle gesehen wo Match User "!root,*" hat den Job gemacht. - Roman Hocke


Antworten:


Versuchen Match im 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 Negation:

Match User !root
    PasswordAuthentication no

Beachten Sie, dass die Übereinstimmung wirksam ist "bis entweder eine andere Match-Zeile oder das Ende der Datei." (die Einrückung ist nicht signifikant)


156
2018-06-30 16:13



bevorzugen Match user !root für diesen Fall - 84104
Super, 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 durch SSH überhaupt nicht erlauben. Wahrscheinlich keine große Sache, wenn es intern ist. - Safado
@SpacemanSpiff Das ist, was a) starke Passwörter und b) denyhosts / fail2ban sind. - ceejayoz
@ deed02392 Sie können einen Schlüssel als ein wirklich starkes Passwort betrachten, wenn Sie möchten. - ceejayoz
Es ist so viel stärker, es ist nicht im selben Ballpark, das war mein Punkt. Die Passwort-Authentifizierung sollte auch für root deaktiviert sein und Schlüssel nur für Logins erlaubt sein. - deed02392


Match im sshd_config funktioniert gut. Du solltest benutzen Match all um den Matchblock zu beenden, wenn Sie openssh 6.5p1 oder höher verwenden. Beispiel:

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all

12
2017-11-27 22:13





Es gibt ein paar Möglichkeiten, wie Sie das tun können - Erstens könnte man konzeptuell einen zweiten sshd-Daemon auf einem anderen Port mit anderer Konfiguration ausführen - das ist ein bisschen ein Hack, aber mit etwas Chroot-Arbeit sollte es gut funktionieren.

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


1
2018-06-30 15:42





Sie können einfach zur Datei / etc / ssh / sshd_config gehen und eine Zeile hinzufügen Zu erlauben -> AllowUsers user1 Verweigern ---> DenyUsers user2

Mit den Dateien hosts.allow oder hosts.deny, die sich im Ordner / etc befinden, können wir die Anmeldung für einen bestimmten Satz von Hosts zulassen / verweigern


-1
2018-03-04 06:10