Est-il possible que sshd accepte les mots de passe uniquement sur certains ports?

24

Je sais qu'il est possible d' sshdécouter sur plusieurs ports en utilisant plusieurs Portdirectives. Est-il cependant possible d'ajuster indépendamment les paramètres par port? En particulier, est-il possible qu'un port autorise l'authentification par mot de passe, mais qu'un autre port l'interdit?

Laurence Gonsalves
la source
1
Soit dit en passant: la raison pour laquelle je fais cela est que je veux autoriser les mots de passe sur mon LAN, mais pas sur le WAN. Mon pare-feu WAN permet uniquement de se connecter au port le plus restrictif.
Laurence Gonsalves
1
Voir également restriction par adresse (s) IP si vous préférez utiliser le numéro de port standard.
ændrük

Réponses:

32

Cela peut être accompli avec la Matchdirective.

Dans /etc/sshd_config, déclarez plusieurs ports:

Port 22
Port 2222

Ensuite, à la toute fin du fichier, ajoutez ce qui suit:

Match LocalPort 2222
PasswordAuthentication no

Tous les paramètres seront partagés entre les ports, sauf que l'authentification par mot de passe sera désactivée sur le port 2222.

Laurence Gonsalves
la source
+1 Très intéressant
Carlos Campderrós
Dommage Matchne fonctionne pas avec AllowUsers. Pour toute personne qui doit restreindre les utilisateurs pour un port spécifique, vous êtes probablement bloqué par l'exécution de plusieurs sshdinstances.
Bob
0

Un seul sshdprocessus, je ne le pense pas, mais il devrait être assez facile de configurer un deuxième fichier de configuration et d'exécuter deux sshdécouteurs, l'un sur les ports de mot de passe et l'autre sur les ports sans mot de passe.

John
la source
3
J'ai trouvé qu'il existe en fait un moyen de le faire avec une seule instance de sshd. Voir la réponse que j'ai postée. Merci quand même.
Laurence Gonsalves