Explicación detallada de la configuración de sshd_config
reinicio del servicio sshd
nombre sshd_config - OpenSSH SSH
Archivo de configuración del demonio del servidor
¿Esquema /etc/ssh/ sshd _ config?
Descripción?
sshd(8) lee la información de configuración del archivo /etc/ssh/sshd_config (o el archivo especificado por la opción de línea de comando -f) de forma predeterminada.
El archivo de configuración está compuesto por pares de "valores de comando", uno por línea. Las líneas vacías y las líneas que comienzan con '#' se ignoran.
Si el valor contiene espacios en blanco u otros símbolos especiales, se puede delimitar agregando comillas dobles (") en ambos lados.
[Nota] El valor distingue entre mayúsculas y minúsculas. Pero las instrucciones no distinguen entre mayúsculas y minúsculas.
Todas las instrucciones de configuración disponibles actualmente son las siguientes:
Especifique qué variables de entorno enviadas por el cliente se pasarán al entorno de sesión.
p>
[Nota] Solo el protocolo SSH-2 admite el paso de variables de entorno
Para obtener más información, consulte la directiva de configuración SendEnv en ssh_config(5). >
El valor de la directiva es. Una lista de nombres de variables separados por espacios ('*' y '?' se pueden usar como comodines). También puede usar varios ? AcceptEnv para lograr el mismo propósito. >
Cabe señalar que algunas variables de entorno pueden. Se utilizan para omitir las variables de entorno deshabilitadas por el usuario. Por esta razón, esta directiva debe usarse con precaución.
Especifica qué familia de direcciones sshd(8). debe utilizar. El rango de valores es: "cualquiera" (predeterminado), "inet" (solo IPv4), "inet6" (solo IPv6)
Esta directiva va seguida de una lista de nombres de grupos separados por espacios. (que se pueden utilizar). Utilice los comodines "*" y "?" Todos los grupos pueden iniciar sesión de forma predeterminada.
Si se utiliza esta directiva, solo los miembros de estos grupos podrán iniciar sesión. inicie sesión y se negarán todos los demás grupos.
p>El "grupo" aquí se refiere al "grupo principal", que es el grupo especificado en el archivo /etc/passwd. >
Aquí solo se permite el nombre del grupo. Utilice GID. Las directivas de permitir/denegar relacionadas se procesan en el siguiente orden: DenyUsers, AllowUsers, DenyGroups, AllowGroups
Si se permite el reenvío TCP. el valor predeterminado es "sí"
Deshabilitar el reenvío TCP. Esto no mejora la seguridad a menos que el acceso del usuario al shell esté deshabilitado, ya que los usuarios pueden instalar sus propios reenviadores.
Esta directiva es. seguido de una lista de nombres de usuario separados por espacios (donde se puede utilizar "). Comodines *" y "?" Todos los usuarios pueden iniciar sesión de forma predeterminada.
Si se utiliza esta directiva, solo. a estos usuarios se les permitirá iniciar sesión y a todos los demás se les negará
Si se especifica un usuario en modo USER@HOST, USER y HOST se verificarán al mismo tiempo.
Por ejemplo:
? AllowUsers admin@192.168.0.1
¿Usar espacios para especificar varios usuarios
? 0.1 usuarios1
Aquí solo se permite el nombre del usuario pero no el UID.
Las directivas de permitir/denegar relevantes se procesan en el siguiente orden: DenyUsers, AllowUsers, DenyGroups, AllowGroups
Almacena la clave pública RSA/DSA que el usuario puede utilizar para iniciar sesión.
Los siguientes símbolos se pueden utilizar en este comando para expandirse según la situación real durante la conexión:
%% significa '%', %h significa el directorio de inicio del usuario, % u significa el nombre de usuario del usuario.
El valor expandido debe ser una ruta absoluta o una ruta relativa al directorio de inicio del usuario.
El valor predeterminado es ".ssh/authorized_keys".
Muestra el contenido del archivo especificado por esta directiva al usuario remoto antes de que el usuario se autentique.
Esta función solo se puede utilizar para SSH-2 y no se mostrará nada de forma predeterminada. "ninguno" desactiva esta función.
Si se permite la autenticación de desafío-respuesta. El valor predeterminado es "sí".
Se admiten todos los métodos de autenticación permitidos en login.conf(5).
Especifique los algoritmos de cifrado que SSH-2 permite utilizar. Utilice comas para separar varios algoritmos. Se pueden utilizar los siguientes algoritmos: "aes128-cbc", "aes192-cbc", "aes256-cbc", "aes128-ctr", "aes192-ctr", "aes256-ctr", "3des-cbc", " arcfour128 ", "arcfour256", "arcfour", "blowfish-cbc", "cast128-cbc"
El valor predeterminado es utilizar todos los algoritmos anteriores.
sshd(8) El número máximo de mensajes "vivos" que se permiten enviar antes de recibir cualquier respuesta del cliente. El valor predeterminado es 3.
Una vez que se alcanza este límite superior, sshd(8) desconectará y cerrará la sesión a la fuerza.
Cabe señalar que el mensaje "alive" es muy diferente de TCPKeepAlive.
Los mensajes "vivos" se envían a través de una conexión cifrada y, por lo tanto, no se pueden falsificar; TCPKeepAlive se puede falsificar.
Si ClientAliveInterval se establece en 15 y ClientAliveCountMax se mantiene en el valor predeterminado, los clientes que no respondan se desconectarán a la fuerza después de aproximadamente 45 segundos. Este comando sólo se puede utilizar con el protocolo SSH-2.
Establezca un período de tiempo en segundos. Si no se reciben datos del cliente durante más de este tiempo, sshd(8) enviará un mensaje "vivo" al cliente a través del canal seguro "Mensaje y. espere una respuesta.
El valor predeterminado 0 significa que no se envían mensajes "vivos". Esta opción sólo es válida para SSH-2.
Si cifrar los datos de comunicación o retrasar el cifrado de los datos de comunicación hasta que la autenticación sea exitosa.
Valores disponibles: "sí", "retrasado" (por defecto), "no".
Esta directiva va seguida de una lista de nombres de grupos separados por espacios (se pueden utilizar los caracteres comodín "*" y "?"). Todos los grupos pueden iniciar sesión de forma predeterminada.
Si se utiliza esta directiva, a los miembros de estos grupos se les negará el inicio de sesión.
El "grupo" aquí se refiere al "grupo primario", que es el grupo especificado en el archivo /etc/passwd.
Aquí solo se permiten nombres de grupos y no se permiten GID. Las directivas permitir/denegar relevantes se procesan en el siguiente orden: DenyUsers , AllowUsers , DenyGroups , AllowGroups
Esta directiva va seguida de una lista de nombres de usuario separados por espacios (los caracteres comodín "*" y "?" se puede utilizar) ). Todos los usuarios pueden iniciar sesión de forma predeterminada.
Si se utiliza esta directiva, a estos usuarios se les negará el inicio de sesión.
Si se especifica un usuario en modo USER@HOST, USER y HOST se verificarán al mismo tiempo.
Aquí solo se permite el nombre del usuario pero no el UID. Las directivas permitir/denegar relevantes se procesan en el siguiente orden: DenyUsers, AllowUsers, DenyGroups, AllowGroups
Fuerza la ejecución de los comandos especificados aquí e ignora cualquier comando proporcionado por el cliente. Este comando se ejecutará utilizando el shell de inicio de sesión del usuario (shell -c).
Esto se puede aplicar al shell, al comando, a la finalización del subsistema y normalmente se usa dentro de los bloques Match.
Este comando fue admitido inicialmente en el lado del cliente a través de la variable de entorno SSH_ORIGINAL_COMMAND.
Si se permite que los hosts remotos se conecten al puerto de reenvío local. El valor predeterminado es "no".
sshd(8) vincula el reenvío de puerto remoto a la dirección de loopback de forma predeterminada. Esto evitará que otros hosts remotos se conecten al puerto reenviado. La directiva GatewayPorts permite que sshd vincule el reenvío de puertos remotos a direcciones sin loopback, permitiendo así que se conecten hosts remotos.
"no" significa que solo se permiten conexiones locales, "sí" significa que el reenvío de puerto remoto está obligado a vincularse a la dirección comodín,
"especificado por el cliente" significa que los clientes están permitidos. El cliente selecciona a qué dirección vincular el reenvío del puerto remoto.
Si se permite la autenticación de usuarios basada en GSSAPI. El valor predeterminado es "no". Sólo para SSH-2.
Si se destruye automáticamente la caché de credenciales del usuario después de que el usuario cierra la sesión. El valor predeterminado es "sí". Sólo para SSH-2.
Esta directiva es similar a RhostsRSAAuthentication, pero solo funciona con SSH-2. Se recomienda utilizar el valor predeterminado "no". ?
Se recomienda utilizar el valor predeterminado "no" para desactivar este método de autenticación inseguro.
Cuando HostbasedAuthentication está activado, especifique si el servidor realiza una consulta inversa de nombre de dominio cuando usa ~/.shosts ~/.rhosts /etc/hosts.equiv para la coincidencia de nombres de host remotos.
"sí" significa que sshd(8) confía en el nombre de host proporcionado por el cliente sin realizar una búsqueda inversa. El valor predeterminado es "no".
La ubicación del archivo de clave privada del host. sshd(8) puede negarse a iniciarse si los permisos son incorrectos.
El valor predeterminado para SSH-1 es /etc/ssh/ssh_host_key.
SSH-2 tiene como valor predeterminado /etc/ssh/ssh_host_rsa_key y /etc/ssh/ssh_host_dsa_key.
Un host puede tener varias claves privadas diferentes. "rsa1" sólo se utiliza para SSH-1, "dsa" y "rsa" sólo se utilizan para SSH-2.
Si se ignoran los archivos .rhosts y .shosts durante RhostsRSAAuthentication o HostbasedAuthentication. ?
Sin embargo, /etc/hosts.equiv y /etc/shosts.equiv se seguirán utilizando. Se recomienda establecer el valor predeterminado en "sí".
Si se ignora el archivo ~/.ssh/known_hosts del usuario durante RhostsRSAAuthentication o HostbasedAuthentication. ?
El valor predeterminado es "no". Para mejorar la seguridad, se puede configurar en "sí".
Si se requiere la contraseña proporcionada por el usuario para PasswordAuthentication para pasar la autenticación Kerberos KDC, es decir, si se debe utilizar la autenticación Kerberos.
Para utilizar la autenticación Kerberos, el servidor necesita una servtab Kerberos que pueda verificar la identidad de KDC. El valor predeterminado es "no".
Si se utiliza AFS y el usuario tiene un TGT Kerberos 5, luego de habilitar este comando, se intentará un token AFS antes de acceder al directorio de inicio del usuario. El valor predeterminado es "no".
Si la autenticación de contraseña Kerberos falla, la contraseña también tendrá que pasar otros mecanismos de autenticación (como /etc/passwd). ? El valor predeterminado es "sí".
Si se debe destruir automáticamente el ticket del usuario después de que el usuario cierre la sesión. El valor predeterminado es "sí".
Bajo el protocolo SSH-1, la clave del servidor de corta duración se regenerará continuamente según el período (segundos) establecido por este comando. Este mecanismo puede minimizar las pérdidas causadas por la pérdida de claves o ataques de piratas informáticos.
Establezca en 0 para no regenerarse nunca; el valor predeterminado es 3600 (segundos).
Especifique la dirección de red que sshd(8) monitorea. De forma predeterminada, monitorea todas las direcciones. Se puede utilizar el siguiente formato:
Host de dirección de escucha | IPv4_addr | IPv6_addr
Host de dirección de escucha | IPv4_addr: puerto
Dirección de escucha [ dirección de IPv6 ]: puerto p >
Si no se especifica el puerto, se utilizará el valor de la directiva Port.
Se pueden utilizar varias directivas ListenAddress para escuchar varias direcciones.
Restringe a los usuarios para que se autentiquen correctamente dentro del límite de tiempo especificado, 0 significa que no hay límite. El valor predeterminado es 120 segundos.
Especifique el nivel de registro (detallado) de sshd(8). Los valores disponibles son los siguientes:
QUIET, FATAL, ERROR, INFO (predeterminado), VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3 DEBUG es equivalente a DEBUG1 y DEBUG3, respectivamente, especifican más detallado y detallado; salida del registro.
Los registros que son más detallados que DEBUG pueden filtrar información confidencial del usuario y, por lo tanto, no se recomiendan.
Especifique qué algoritmos de resumen de mensajes pueden usarse en SSH-2 para la verificación de datos.
Puede utilizar una lista separada por comas para especificar que se permiten varios algoritmos. El valor predeterminado (incluidos todos los algoritmos que se pueden utilizar) es: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-sha1-96,hmac-md5-96
Introducir un bloque condicional. El final de un bloque está marcado por otra directiva Match o el final del archivo. ?
Si se cumplen las condiciones especificadas en la línea Coincidencia, las directivas posteriores anularán las de la configuración global. El valor de Match es uno o más pares "condición-patrón". Las "condiciones" disponibles son: Usuario, Grupo, Host, Dirección.
Solo se pueden utilizar las siguientes directivas en los bloques Match:
AllowTcpForwarding,Banner,ForceCommand,GatewayPorts,GSSApiAuthentication,
KbdInteractiveAuthentication,KerberosAuthentication,PasswordAuthentication, p >
PermitOpen,PermitRootLogin,RhostsRSAAuthentication,RSAAuthentication,
X11DisplayOffset,X11Forwarding,X11UseLocalHost
Especifica el número máximo de autenticaciones permitidas para cada conexión. El valor predeterminado es 6.
Si el número de autenticaciones fallidas supera la mitad de este valor, la conexión se desconectará a la fuerza y se generarán mensajes de registro de errores adicionales.
El número máximo de conexiones no autenticadas que se permite mantener. El valor predeterminado es 10.
Una vez que se alcanza el límite, ya no se aceptarán nuevas conexiones a menos que la conexión anterior se autentique exitosamente o se exceda el límite de LoginGraceTime.
Si se permite la autenticación basada en contraseña. El valor predeterminado es "sí".
Si los usuarios con contraseñas vacías pueden iniciar sesión de forma remota. El valor predeterminado es "no".
Especifique los destinos permitidos para el reenvío de puertos TCP. Puede utilizar espacios para separar varios destinos de reenvío. Todas las solicitudes de reenvío están permitidas de forma predeterminada.
PermitOpen host: puerto
PermitOpen IPv4_addr: puerto
PermitOpen [IPv6_addr]: puerto
"cualquiera" se puede utilizar para eliminar todas las restricciones y permitir todas las solicitudes de reenvío.
Si se permite el inicio de sesión como root. Los valores disponibles son: ?
"sí" (predeterminado) significa permitir. "no" significa prohibido. ?
"sin contraseña" significa que el inicio de sesión con autenticación de contraseña está prohibido.
"solo comandos forzados" significa que el inicio de sesión de autenticación de clave pública solo se permite cuando se especifica la opción de comando. ? Al mismo tiempo, todos los demás métodos de autenticación están prohibidos. Este valor se utiliza a menudo para cosas como copias de seguridad remotas.
Si se permite el reenvío de dispositivos tun(4). Los valores disponibles son:
"sí", "punto a punto"(capa 3), "ethernet"(capa 2), "no" (predeterminado).
"yes" contiene tanto "punto a punto" como "ethernet".
Especifica si se permite que sshd(8) procese la opción Environment= en ~/.ssh/environment y ~/.ssh/authorized_keys.
El valor predeterminado es "no". Si se establece en "sí", los usuarios pueden tener la oportunidad de utilizar ciertos mecanismos (como LD_PRELOAD) para eludir el control de acceso, provocando vulnerabilidades de seguridad.
Especifique en qué archivo almacenar el número de proceso del demonio SSH. El valor predeterminado es el archivo /var/run/sshd.pid.
Especifique el número de puerto en el que escucha el demonio sshd(8). El valor predeterminado es 22. Se pueden utilizar varios comandos para escuchar varios puertos. De forma predeterminada, escuchará en todas las interfaces de red de la máquina local, pero puede especificar que escuche solo en una interfaz específica a través de ListenAddress.
Especifica si sshd(8) imprime la hora de inicio de sesión del último usuario en cada inicio de sesión interactivo. El valor predeterminado es "sí".
Especifica si sshd(8) imprime el contenido del archivo /etc/motd en cada inicio de sesión interactivo. El valor predeterminado es "sí".
Especifique el número de versión del protocolo SSH compatible con sshd(8). ?
'1' y '2' indican que solo se admiten los protocolos SSH-1 y SSH-2. "2,1" indica que se admiten los protocolos SSH-1 y SSH-2.
Si se permite la autenticación de clave pública. Sólo se puede utilizar con SSH-2. El valor predeterminado es "sí".
Si se debe utilizar una autenticación sólida de host confiable (autenticación comprobando el nombre del host remoto y el nombre de usuario asociado). Sólo para SSH-1.
Esto se hace marcando ~/.rhosts o /etc/hosts.equiv después de una autenticación RSA exitosa.
Por motivos de seguridad, se recomienda utilizar el valor predeterminado "no".
Si se permite la autenticación de clave pública RSA pura. Sólo para SSH-1. El valor predeterminado es "sí".
Especifica la longitud de la clave del servidor temporal. Sólo para SSH-1. El valor predeterminado es 768 (bits). El valor mínimo es 512.
Especifica si se requiere que sshd(8) realice comprobaciones de host y permisos en el directorio de inicio del usuario y los archivos de configuración asociados antes de aceptar una solicitud de conexión.
Se recomienda encarecidamente utilizar el valor predeterminado "sí" para evitar posibles errores de bajo nivel.
Configurar un subsistema externo (por ejemplo, un demonio de transferencia de archivos). Sólo se utiliza para el protocolo SSH-2. ?
El valor es el nombre de un subsistema y la línea de comando correspondiente (incluyendo opciones y parámetros). Por ejemplo "sft /bin/sftp-server".
Especifica el subsistema de registro (instalación) a través del cual sshd(8) envía mensajes de registro. Los valores válidos son: DAEMON, USER, AUTH (predeterminado), LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7
Especifica si el sistema envía mensajes de mantenimiento de TCP al cliente. El valor predeterminado es "sí". ?
Este tipo de mensaje puede detectar anomalías como conexiones inactivas, cierres incorrectos de conexiones, caídas del cliente, etc.
Esta función se puede desactivar estableciendo "no".
Especifica si sshd(8) debe resolver de forma inversa el nombre de host remoto para comprobar si el nombre de host realmente corresponde a su dirección IP. El valor predeterminado es "sí".
Si se debe utilizar login(1) durante el proceso de inicio de sesión para sesiones interactivas. El valor predeterminado es "no".
Si esta directiva está habilitada, X11Forwarding se deshabilitará porque login(1) no sabe cómo manejar las cookies xauth(1).
Cabe señalar que está prohibido utilizar login(1) para ejecutar comandos de forma remota.
Si se especifica UsePrivilegeSeparation, se desactivará una vez completada la autenticación.
Si se debe permitir que sshd(8) realice la separación de permisos mediante la creación de un proceso secundario sin privilegios para manejar las solicitudes de acceso. El valor predeterminado es "sí". ?
Después de una autenticación exitosa, se creará otro proceso secundario como usuario autenticado.
El propósito de esto es evitar la escalada de privilegios a través de procesos secundarios defectuosos, haciendo así que el sistema sea más seguro.
Especifica el primer número de visualización disponible para el reenvío sshd(8) X11. El valor predeterminado es 10.
Esto se puede utilizar para evitar que sshd ocupe el área de visualización real del servidor X11 y cause confusión.
Si se permite el reenvío X11. El valor predeterminado es "no", configúrelo en "sí" para permitirlo.
Si el reenvío X11 está habilitado y la pantalla del agente sshd(8) está configurada para escuchar en una dirección comodín ( X11UseLocalhost ).
Entonces es posible que se filtre información adicional. Debido a los riesgos asociados con el uso del reenvío X11, el valor predeterminado de esta directiva es "no".
Cabe señalar que deshabilitar el reenvío X11 no impide que los usuarios reenvíen tráfico X11, porque los usuarios pueden instalar sus propios reenviadores.
Si UseLogin está habilitado, el reenvío X11 se deshabilitará automáticamente.
sshd(8) Si el servidor de reenvío X11 debe estar vinculado a la dirección de loopback local. El valor predeterminado es "sí".
De forma predeterminada, sshd vincula el servidor de reenvío a la dirección de loopback local y establece la parte del nombre de host de la variable de entorno DISPLAY en "localhost".
Esto evita que los hosts remotos se conecten a la pantalla proxy. Sin embargo, algunos clientes X11 más antiguos no funcionan correctamente con esta configuración.
Para compatibilidad con estos clientes X11 más antiguos, puede configurarlo en "no".
Especifique la ruta absoluta al programa xauth(1). El valor predeterminado es /usr/X11R6/bin/xauth
Los valores de tiempo utilizados en los argumentos de la línea de comando y los archivos de configuración de sshd(8) se pueden especificar en el siguiente formato: tiempo [calificador]. donde el tiempo es un número entero positivo y el calificador puede ser una de las siguientes unidades:
s | S segundos
m | minutos
h | H horas
d | D días
w | W semanas
Puede sumar tiempo especificando varios valores , por ejemplo:
1h30m? 1 hora y 30 minutos (90 minutos)
/etc/ssh/sshd_config
El archivo de configuración principal de sshd( 8).
El host de este archivo debe ser root y los permisos máximos pueden ser "644".