Wie kann ich die SSH-Kennwortauthentifizierung nur für bestimmte IP-Adressen zulassen?


103

Ich möchte die SSH-Kennwortauthentifizierung nur für ein bestimmtes Subnetz zulassen. Ich sehe die Option, es global zu verbieten, in /etc/ssh/sshd_config:

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

Gibt es eine Möglichkeit, diese Konfiguration auf einen ausgewählten Bereich von IP-Adressen anzuwenden?

Antworten:


156

Benutze einen MatchBlock am Ende von /etc/ssh/sshd_config:

# Global settings
…
PasswordAuthentication no
…

# Settings that override the global settings for matching IP addresses only
Match address 192.0.2.0/24
    PasswordAuthentication yes

Dann teilen Sie dem sshd-Dienst mit, dass er seine Konfiguration neu laden soll:

service ssh reload

1
Ich habe es versucht (mit 192.168.0.0/16 stattdessen) und als ich den SSH-Dienst neu startete, wurde ich ausgesperrt. SSH lehnte alle Verbindungen ab. Irgendeine Idee, warum das sein könnte?
Michael Waterfall

2
@MichaelWaterfall Es ist unmöglich, mit so wenig Informationen zu sagen. Stellen Sie sicher, dass eine Shell ausgeführt wird, bis Sie die neue Konfiguration validiert haben. Das Neustarten des SSH-Dienstes wirkt sich nicht auf aktive Verbindungen aus.
Gilles

28
Das wahrscheinlichste Problem ist, dass Sie den Match-Block in die Mitte Ihrer sshd_config setzen. Übereinstimmungszeilen wirken sich auf alle folgenden Zeilen bis zur nächsten Übereinstimmungszeile aus. Sie sollten sich also am Ende der Datei befinden.
Ken Simon

6
Trotz der Einrückung in der Antwort sshd_configist nicht Python;)
Nick T

1
@frepie Der MatchBlock erstreckt sich bis zur nächsten MatchAnweisung oder bis zum Ende der Datei. Deshalb muss man es am Ende setzen.
Gilles

8

Du kannst hinzufügen:

AllowUsers user1@192.168.*.*, user2@192.168.*.*

Dies ändert das Standardverhalten und lehnt alle anderen Benutzer von allen Hosts ab. Matchblock verfügbar ab OpenSsh Version 5.1 .


Ich erlaube einer Gruppe anstelle eines einzelnen Benutzers
Lamar

@Lamar From man sshd_config, es sieht so aus , als würde es AllowGroupsgenauso funktionieren AllowUsers, AllowUsersscheint aber Vorrang zu haben AllowGroups.
conradkdotcom
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.