
Generalmente, por no decir casi siempre, la configuración por defecto de un paquete Debian permite al usuario comenzar a trabajar al instante. En la mayoría de los casos, esta es la situación del paquete ssh. Así todo, es muy conveniente repasar alguna de sus posibilidades, con el fin de adecuar el daemon a nuestras necesidades.
Pasar una opción a sshd se puede realizar de dos maneras: mediante una opción en la línea de comandos o el fichero de configuración situado en /etc/ssh/sshd_config.
![]() | Se debe tener en cuenta que las opciones de la línea de comandos se imponen sobre los valores contenidos en el fichero de configuración y que el envío de una señal SIGHUP fuerza al daemon a releer sshd_config. |
A continuación repasaremos alguna de las opciones más interesantes que aporta sshd_config
Opciones de configuración
Esta opción puede ir seguida de una lista de grupos de nombres, separados por espacios. Si se especifica, sólo se permite realizar un login a los usuarios cuyo grupo principal o suplementarios coincida con uno de los patrones establecidos. Se puede usar '*' y '?' como comodines en los patrones. Sólo se aceptan nombres de grupo; identificadores numéricos de grupo no están reconocidos. Por defecto, se acepta el login independientemente del grupo de pertenencia.
Esta opción puede ir seguida de una lista de usuarios, separados por espacios. Si se especifica, sólo se permite realizar login a los usuarios cuyo nombre concuerde con el patrón. Se pueden usar '*' y '?' para la construcción de patrones. Sólo se admiten nombres de usuario; nada de identificadores numéricos. Por defecto, se permite realizar login independientemente del nombre de usuario. Si los patrones siguen la foma USUARIO@HOST, entonces USUARIO y HOST se comprueban por separado, restringiéndose el acceso a determinados usuarios de ciertos equipos.
Especifica que cifrados son admitidos para la versión 2. Si especificas múltiples cifrados, sepáralos con comas. El valor por defecto es "aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour".
Establece el tiempo (en segundos) después del cual, si no se ha recibido datos del cliente, sshd enviará un mensaje a través de un canal encriptado solicitando respuesta al cliente. El valor por defecto es 0, indicando que no se envía mensaje alguno. Esta opción sólo concierne a SSH2.
Establece el número de mensajes solicitando una respuesta (ver la opción anterior) que se enviarán sin ninguna contestación por parte del cliente. Si se alcanza este límite, sshd desconectará al cliente, terminando la sesión. Es importante hacer constar la diferencia entre los mensajes de comprobación de la existencia del cliente (client alive) y los mensajes KeepAlive (más abajo). Los primeros, se envían a través de un canal encriptado y no pueden ser interceptados. Los últimos, TCP KeepAlive, sí son interceptables y posibilitan que un cliente o servidor tengan conocimiento de cuándo una conexión se ha vuelto inactiva.
El valor por defecto es 3. Si la opción ClientAliveInterval (anterior) es 15 y ClientAliveCountMax se deja con su valor por defecto, los clientes que no respondan serán desconectados después de 45 segundos aproximadamente.
Similar a la opción AllowGroups pero con un enfoque de denegación.
Similar a la opción AllowUsers pero con un enfoque de denegación.
Especifica si el sistema debe enviar mensajes keepalive al otro extremo. Si se envían, la muerte de la conexión o la interrupción en el funcionamiento en una de las máquinas serán notificadas pertinentemente. Sin embargo, esto significa que las conexiones morirán si la ruta cae temporalmente. Por otro lado, si no se envían mensajes keepalive, las sesiones pueden colgarse indefinidamente en el servidor, dejando usuarios fantasma y consumiendo recursos del sistema.
El valor por predeterminado es "yes" (sí envía mensajes keepalive) y el servidor tendrá conocimiento de si la red cae o el host reinicia. Esto evita sesiones fantasma.
Para deshabilitar keepalives, el valor debe ser "no", tanto en el servidor como en el cliente.
Especifica si el método de autentificación Kerberos está permitido. Esto puede llevarse a cabo mediante un ticket Kerberos o si la opción PasswordAuthentication está habilitada. En ese caso, la contraseña suministrada por el usuario puede ser validada contra un KDC Kerberos. Para usar esta opción, el servidor necesita un servtab Kerberos que permita la verificación de la identidad del KDC. Por defecto, el valor es "yes".
Especifica las direcciones locales a las cuales escucha sshd. Se pueden usar las siguientes sintaxis:
Si no se especifica el puerto, sshd escuchará en la dirección y todos los puertos que se hayan especificado anteriormente. Por defecto, se escucha en todas las direcciones locales. Se pueden enunciar múltiples opciones ListenAddress.
El servidor desconecta después de este tiempo a los usuarios que no se hayan validado correctamente. Si el valor es 0, no hay límite de tiempo.
Por defecto, 600 (segundos).
Nivel de verbosidad de sshd que se usa en los mensajes del log. Los valores posibles son: QUIET, FATAL, ERROR, INFO, VERBOSE and DEBUG. El predeterminado, INFO. DEBUG viola la privacidad de los usuarios y no se recomienda.
Especifica el número máximo de conexiones concurrentes sin autentificar que se efectúan contra el servidor sshd. Las conexiones adicionales serán denegadas hasta que la autentificación se tenga lugar o LoginGraceTime expire para una conexión determinada. El valor predeterminado es 10.
Especifica si la autentificación por password está admitida. Por defecto, "yes".
Especifica si el superusuario puede validar usando ssh. Los argumentos posibles son: "yes", "without-password", "forced-commands-only" o "no". El valor por defecto es "yes".
Si a esta opción se le asigna "without-password", la autentificación por password se deshabilita para el usuario root.
Si a esta opción se le asigna "forced-commands-only", el login del superusuario con autentificación de clave pública será admitido, pero sólo si la opción del comando se ha especificado (lo que puede ser útil para realizar backups remotos incluso si el login de superusuario no está admitido normalmente). El resto de métodos de autentificación están vetados para el root.
Si a la opción se le asigna "no", el root no puede hacer login.
Especifica el número de puerto al que escucha sshd. El puerto predeterminado es el 22. Se admiten opciones múltiples.
Especifica las versiones del protocolo que soporta sshd. Las posibilidades son "1" y "2". Las opciones múltiples se separan por comas. El valor por defecto es "2,1".
Especifica si se admite la autentificación mediante clave pública. Por defecto, "yes". Esta opción sólo se aplica a la versión 2 del protocolo.
Especifica si sshd debe comprobar los permisos y propietarios de los ficheros del usuario y el directorio home antes de aceptar el login. Es recomendable habilitar esta opción pues los usuarios noveles a veces dejan accidentalmente su directorio o sus ficheros con permisos de escritura universales. El valor por defecto, "yes".
Para obtener la información completa sobre las opciones que admite sshd, lee la página del manual que incluye el paquete.