Es mejor usar claves públicas para SSH. Entonces mi sshd_config
tiene PasswordAuthentication no
.
Algunos usuarios nunca inician sesión, por ejemplo, un usuario sftp con shell /usr/sbin/nologin
. O una cuenta del sistema.
Entonces puedo crear un usuario sin contraseña con adduser gary --shell /usr/sbin/nologin --disabled-password
.
¿Es esa una buena / mala idea? ¿Hay ramificaciones que no he considerado?
sudo
acceder (ya sea por no tener permisos sudo en absoluto o por tener permisos sudo conNOPASSWD
), la respuesta que seleccionó debería ser adecuada. Envié una edición sobre esa respuesta para incluir la preocupación de sudo, pero pensé que te lo diría aquí mientras tanto.Respuestas:
Si tiene acceso de root al servidor y puede regenerar claves ssh para sus usuarios en caso de que los pierdan
Y
está seguro de que un usuario (como persona) no tendrá varias cuentas de usuario y necesita cambiar entre las de una sesión SSH (bueno, también puede abrir varias sesiones SSH si surge la necesidad)
Y
ellos no necesitan "física" (a través del monitor + teclado oa través de la consola remota de una máquina virtual) de acceso al servidor
Y
ningún usuario tiene
sudo
acceso con contraseña (es decir, no tiene acceso a sudo o no tiene acceso a sudoNOPASSWD
)Creo que estarás bien.
Tenemos muchos servidores en el trabajo configurados de esta manera (solo algunas cuentas necesitan acceso a la VM a través de la consola remota vmware, las otras solo se conectan a través de SSH con autenticación de clave pública).
fuente
PasswordAuthentication no
un problema diferente (el usuario no podrá iniciar sesión de todos modos).Esta pregunta mencionó originalmente
passwd --delete <username>
que no es seguro : con eso, el campo de contraseña encriptada/etc/shadow
estará completamente vacío.Si ha configurado su
sshd
para rechazar la autenticación de contraseña, entonces eso es seguro con SSH ... Pero si cualquier otro servicio en su sistema usa autenticación de contraseña y no está configurado para rechazar contraseñas nulas, ¡esto permite el acceso sin contraseña! No quieres esto.adduser --disabled-passwd
producirá una/etc/shadow
entrada donde el campo de contraseña cifrada es solo un asterisco, es decirEsta es "una contraseña cifrada que nunca se puede ingresar con éxito", es decir, la cuenta es válida y técnicamente permite inicios de sesión, pero hace que la autenticación por contraseña sea imposible de tener éxito . Entonces, si tiene otros servicios basados en autenticación de contraseña en su servidor, este usuario está bloqueado.
Solo los métodos de autenticación que usan algo diferente a la contraseña de cuenta estándar (por ejemplo, las claves SSH) funcionarán para este usuario, para cualquier servicio que use los archivos de contraseña del sistema en este sistema. Cuando necesite un usuario que pueda iniciar sesión solo con claves SSH, esto es lo que desea.
Si necesita establecer una cuenta existente en este estado, puede usar este comando:
Hay un tercer valor especial para el campo de contraseña cifrada:
adduser --disabled-login
el campo contendrá solo un signo de exclamación.Al igual que el asterisco, esto hace que la autenticación de contraseña sea imposible de tener éxito, pero también tiene un significado adicional: marca la contraseña como "bloqueada" para algunas herramientas de administración.
passwd -l
tiene el mismo efecto al prefijar el hash de contraseña existente con un signo de exclamación, lo que nuevamente hace que la autenticación de contraseña sea imposible de usar.Pero aquí hay una trampa para los incautos: en el año 2008, la versión del
passwd
comando que viene delshadow
paquete anterior se cambió para redefinirpasswd -l
de "bloquear la cuenta" a "bloquear la contraseña". La razón indicada es "por compatibilidad con otra versión passwd".Si usted (como yo) aprendió esto hace mucho tiempo, puede ser una sorpresa desagradable. Tampoco ayuda a asuntos que
adduser(8)
aparentemente aún no conocen esta distinción.La parte que desactiva la cuenta de todos los métodos de autenticación está realmente dando un valor de fecha de caducidad de 1 para la cuenta:
usermod --expiredate 1 <username>
. Antes del año 2008,passwd -l
eso se origina en elshadow
kit de origen utilizado para hacer esto además de anteponer la contraseña con un signo de exclamación, pero ya no lo hace.El registro de cambios del paquete Debian dice:
Los historiales de errores para Debian bug 492307 y bug 389183 pueden ser útiles para comprender el pensamiento detrás de esto.
fuente
adduser --disabled-passwd
, por lo que si algún otro servicio permite la autenticación con contraseña, entonces el usuario puede iniciar sesión sin una contraseña?adduser --disabled-password
específicamente hace que la autenticación de contraseña sea imposible para esa cuenta.*
por lo que es lo primero que la gente lee.passwd
código fuente en 2008. ¿No te encanta cuando algo que alguna vez aprendiste y en el que confiabas ya no es así?