OpenSSH: Cómo finalizar un bloque de partidos

49

Estoy usando un Matchbloque en OpenSSH /etc/ssh/sshd_config(en debian) para restringir algunos usuarios a SFTP:

# my stuff
Match group sftponly
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp -u 0002
    ChrootDirectory %h

Como puede ver, uso un #my stuffcomentario en los archivos de configuración personalizados para distinguir fácilmente las configuraciones predeterminadas de las que hice (y las puse al final de los archivos de configuración).
Ahora quería agregar la directiva UseDNS noa la configuración (para acelerar los inicios de sesión), pero dijo OpenSSH Directive 'UseDNS' is not allowed within a Match block.

¿Ahora me preguntaba si hay una sintaxis como End Matchpara terminar esos bloques de partidos?

mreithub
fuente

Respuestas:

30

Para terminar un bloque de coincidencias con openssh 6.5p1 o superior, use la línea: Match all

Aquí hay un fragmento de código, tomado de mi /etc/ssh/sshd_configarchivo:

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

Match host 192.168.1.12
    PasswordAuthentication yes
Match all

X11Forwarding yes
X11DisplayOffset 10

Una línea con suela Matchno funcionará. (No funcionó para mí, sshd se negó a comenzar)

loxaxs
fuente
2
Genial, acabo de probarlo y parece funcionar como se esperaba (incluso podría usar la UseDNSdirectiva (que no funcionó antes). Aceptar esto como la nueva respuesta. - Las versiones más nuevas de OpenSSH aparentemente ni siquiera comience con un vacío Match: lists.mindrot.org/pipermail/openssh-unix-dev/2014-April/…
mreithub
42

Parece que no hay forma de finalizar explícitamente los bloques de coincidencias. Desde la página del manual sshd_config :

Si se cumplen todos los criterios en la línea de coincidencia, las palabras clave en las siguientes líneas anulan las establecidas en la sección global del archivo de configuración, hasta que aparezca otra línea de coincidencia o el final del archivo.

Por lo tanto, los Matchbloques deben estar al final del sshd_configarchivo.

mreithub
fuente
77
Otra opción es tener una línea con nada más que Matchen ella, que efectivamente coincida con todo y, por lo tanto, es lo mismo que 'terminar' el bloque. Sin embargo, esto aún no le permitirá usar directivas que no están permitidas en los bloques Match, por lo que no ayudará con su escenario particular.
Nathan Bouscal
44
"Los bloques coincidentes deben estar al final del archivo sshd_config". Muy útil para mí y no se explica con suficiente claridad (para mí) en la página del manual, etc. Gracias.
MountainX
0

Creo que deberíamos mencionar la tecla Matchy Hostal mismo tiempo.

Host

Restringe que las siguientes declaraciones (hasta la siguiente Hosto Matchpalabra clave) sean solo para aquellos hosts que coincidan con uno de los patrones dados después de la palabra clave.

Match

Restringe las siguientes declaraciones (hasta la siguiente Hosto Matchpalabra clave) que se utilizarán solo cuando se cumplan las condiciones que siguen a la palabra clave Match.

Leer el manual de man ssh_config, tanto Host *y Match allse restablecerá antiguo bloque de restricción, no importa que es un Matchbloque o un Hostbloque.

Simba
fuente