
Estoy implementando un script de implementación básico y para sshd_config el único cambio que necesito hacer es PermitRootLogin sí a PermitRootLogin sin contraseña. He leído los documentos y no mencionan esto, pero eso no quiere decir que sea imposible.
¿Puedo especificar un segundo PermitRootLogin? Es decir, echo 'PermitRootLogin sin contraseña' >> /etc/ssh/sshd_config
Si es así, ¿es seguro?
Actualizaciones basadas en comentarios:
1) Soy consciente de que puedo analizar el archivo y cambiar la variable. Sin embargo, mi pregunta sigue en pie.
Respuesta1
No.
Simplemente puede probar esto agregando la línea y verificando si puede iniciar sesión. Luego puede comentar la primera aparición, reiniciar el servicio y probar nuevamente.
Razón:OpenSSH servconf.c
tiene función
process_server_config_line()
en las líneas 1200-2171 (para 7.9p1)- refactorizado para llamar
process_server_config_line_depth()
a las líneas 1260-2371 (para 8.3p1).
Todas las directivas globales se procesan solo al inicio y las directivas globales solo se procesan una vez. La configuración permanecerá como estaba la primera vez.
Por otra parte, utilizar dos veces la misma directiva puede dar lugar a malentendidos.
Por favor reconsidere analizar el archivo. También puedes reemplazar todo el archivo, si corresponde.
Respuesta2
TL;DR SíEl soporte temprano de Debian y derivados incluye archivos.
Debianyubuntutiene " Include
" directivas al principio ssh
y sshd
archivos de configuración:
/etc/ssh/ssh_config:19:Include /etc/ssh/ssh_config.d/*.conf
/etc/ssh/sshd_config:13:Include /etc/ssh/sshd_config.d/*.conf
Estoy de acuerdo con las respuestas anteriores, el primer valor encontrado prevalece donde Include
los archivos del directorio se procesan primero.
echo PermitRootLogin without-password > /etc/ssh/sshd_config.d/PermitRootLogin.conf
Respuesta3
No, la mayoría de las configuraciones solo usarán el primer valor que encuentren; Es fácil probar la configuración X11Forwarding. Dicho esto, es posible que puedas aprovechar la configuración de anulación por usuario para permitir lo mismo. Normalmente están etiquetados en la parte inferior y, por lo tanto, funcionarían mejor con su objetivo de agregarlos.
Dicho esto, como los demás mencionaron, sed sería una solución mucho más limpia.
sed -i 's/PermitRootLogin yes/PermitRootLogin without-password/g' /etc/ssh/sshd_config
Respuesta4
Modificando respuestas anteriores. A partir de ahora, elmanualparasshd_configEl archivo comienza con "Para cada palabra clave, se utilizará el primer valor obtenido". Por lo tanto, como ya han escrito otros, se ignoran los duplicados.
Es posible utilizar unFósforobloque para anular la configuración global según una condición. ElPermitir inicio de sesión raízse encuentra entre las palabras clave permitidas en un bloque de coincidencia.
(Llegué a esta pregunta porque la configuración predeterminada de sshd en el sistema operativo que estoy usando se cambió para usar unIncluirdirectiva + patrón global, moviendo los valores predeterminados del proveedor a un archivo separado. Por lo tanto, es importante saber cómo maneja sshd las palabras clave duplicadas, para poder anular los valores predeterminados).