¿Cómo puedo permitir la autenticación de contraseña SSH solo desde ciertas direcciones IP?

103

Me gustaría permitir la autenticación de contraseña SSH desde solo una subred determinada. Veo la opción de no permitirlo globalmente en /etc/ssh/sshd_config:

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

¿Hay alguna manera de aplicar esta configuración a un rango selecto de direcciones IP?

ændrük
fuente

Respuestas:

156

Use un Matchbloque al final 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

Luego dígale al servicio sshd que vuelva a cargar su configuración:

service ssh reload
Gilles
fuente
1
Intenté esto (con 192.168.0.0/16 en su lugar) y cuando reinicié el servicio ssh me bloquearon. SSH rechazó cualquier conexión. ¿Alguna idea de por qué esto podría ser?
Michael Waterfall
2
@MichaelWaterfall Es imposible saberlo con tan poca información. Asegúrese de mantener un shell en ejecución hasta que haya validado la nueva configuración. Reiniciar el servicio ssh no afecta las conexiones activas.
Gilles
28
El problema probable es que colocas el bloque Match en algún lugar en el medio de tu sshd_config. Las líneas de coincidencia afectan a cada línea siguiente hasta la siguiente línea de coincidencia, por lo que deben estar al final del archivo.
Ken Simon
66
A pesar de la sangría en la respuesta, sshd_configno es Python;)
Nick T
1
@frepie El Matchbloque se extiende hasta la próxima Matchdirectiva o hasta el final del archivo. Por eso hay que ponerlo al final.
Gilles
8

puedes añadir:

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

Esto cambia el comportamiento predeterminado, realmente niega a todos los demás usuarios de todos los hosts. Match block disponible en OpenSsh versión 5.1 y superior.

glooch
fuente
Llamo Permitir un grupo en lugar de un solo usuario
Lamar
@Lamar From man sshd_config, parece que AllowGroupsfunciona igual que AllowUsers, pero AllowUsersparece tener prioridad sobre AllowGroups.
conradkdotcom