Comment autoriser l'authentification de mot de passe SSH à partir de certaines adresses IP uniquement?

103

J'aimerais autoriser l'authentification par mot de passe SSH à partir d'un certain sous-réseau. Je vois la possibilité de l'interdire globalement dans /etc/ssh/sshd_config:

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

Existe-t-il un moyen d'appliquer cette configuration à une plage d'adresses IP sélectionnée?

ændrük
la source

Réponses:

156

Utilisez un Matchbloc à la fin de /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

Ensuite, indiquez au service sshd de recharger sa configuration:

service ssh reload
Gilles
la source
1
J'ai essayé ceci (avec 192.168.0.0/16 à la place) et quand j'ai redémarré le service ssh, je me suis retrouvé verrouillé. SSH a refusé toute connexion. Une idée pourquoi cela pourrait être?
Michael Waterfall
2
@ MichaelWaterfall Il est impossible de dire avec si peu d'informations. Assurez-vous de garder un shell en cours d'exécution jusqu'à ce que vous ayez validé la nouvelle configuration. Le redémarrage du service ssh n'affecte pas les connexions actives.
Gilles
28
Le problème probable est que vous placez le bloc Match quelque part au milieu de votre sshd_config. Les lignes de correspondance affectent chaque ligne suivante jusqu'à la ligne de correspondance suivante. Elles doivent donc se trouver à la fin du fichier.
Ken Simon
6
Malgré l'indentation dans la réponse, sshd_confign'est pas Python;)
Nick T
1
@frepie Le Matchbloc s'étend jusqu'à la Matchdirective suivante ou jusqu'à la fin du fichier. C'est pourquoi vous devez le mettre à la fin.
Gilles
8

vous pouvez ajouter:

AllowUsers [email protected].*.*, [email protected].*.*

cela change le comportement par défaut, refuse vraiment tous les autres utilisateurs de tous les hôtes. Bloc de correspondance disponible sur OpenSsh version 5.1 et ultérieure .

glooch
la source
J'autorise un groupe d'utilisateurs au lieu d'un seul utilisateur
Lamar
@Lamar De man sshd_config, il semble que AllowGroupsfonctionne de la même façon AllowUsers, mais AllowUserssemble avoir la priorité sur AllowGroups.
Conradkdotcom