¿Es posible que sshd acepte contraseñas solo en ciertos puertos?

24

Sé que es posible sshdescuchar en múltiples puertos usando múltiples Portdirectivas. Sin embargo, ¿es posible ajustar de forma independiente la configuración por puerto? En particular, ¿es posible que un puerto permita la autenticación de contraseña, pero otro puerto no lo permita?

Laurence Gonsalves
fuente
1
Por cierto: la razón por la que hago esto es que quiero permitir contraseñas en mi LAN, pero no desde la WAN. Mi cortafuegos WAN solo permite conectarse al puerto más restrictivo.
Laurence Gonsalves
1
Consulte también la restricción por dirección (es) IP si prefiere usar el número de puerto estándar.
ændrük

Respuestas:

32

Esto se puede lograr con la Matchdirectiva.

En /etc/sshd_config, declare múltiples puertos:

Port 22
Port 2222

Luego, al final del archivo, agregue lo siguiente:

Match LocalPort 2222
PasswordAuthentication no

Todas las configuraciones se compartirán entre los puertos, excepto que la autenticación de contraseña se deshabilitará en el puerto 2222.

Laurence Gonsalves
fuente
+1 Muy interesante
Carlos Campderrós
Lástima Matchque no funcione AllowUsers. Para cualquiera que necesite restringir a los usuarios para un puerto específico, es probable que tenga que ejecutar varias sshdinstancias.
Bob
0

Un solo sshdproceso, no lo creo, pero debería ser bastante fácil configurar un segundo archivo de configuración y ejecutar dos sshdoyentes, uno en los puertos de contraseña y el otro en los puertos sin contraseña.

John
fuente
3
Descubrí que en realidad hay una manera de hacer esto con una sola instancia de sshd. Vea la respuesta que publiqué. Gracias de cualquier manera.
Laurence Gonsalves