Paradeepchhetri no es exactamente correcto.
sshd_config
sin modificar de Debian tiene lo siguiente:
PubkeyAuthentication yes
PermitEmptyPasswords no
UsePAM yes
Por lo tanto, el inicio de sesión a través de ssh solo funcionaría para los usuarios que tienen un campo de contraseña completo en /etc/shadow
o una clave ssh en ~/.ssh/authorized_keys
. Tenga en cuenta que el valor predeterminado para PubkeyAuthentication
es yes
y para PermitEmptyPasswords
es no
, por lo que incluso si los elimina, el comportamiento será el mismo.
En el ejemplo de pregunta, www-data
de forma predeterminada, no podrá iniciar sesión ya que el instalador de Debian no asigna una contraseña ni crea una clave para www-data
.
pam_access
, AllowUsers
y AllowGroups
en sshd_config
se puede utilizar para un control más fino si es necesario. En Debian, se recomienda encarecidamente UsePAM
.
De forma predeterminada, se permite el inicio de sesión para todos los usuarios en Debian.
Puede cambiarlo permitiendo que ciertos usuarios puedan iniciar sesión editando /etc/ssh/sshd_config
archivo.
Como se menciona en la página man de sshd_config.
AllowUsers
Esta palabra clave puede ir seguida de una lista de patrones de nombre de usuario, separados por
espacios. Si se especifica, solo se permite el inicio de sesión para los nombres de usuario que coincidan con uno de los patrones. Solo los nombres de usuario son válidos; una identificación de usuario numérica no es
Reconocido. De forma predeterminada, el inicio de sesión está permitido para todos los usuarios. Si el patrón toma la forma [email protected]
entonces USER
y HOST
se verifican por separado, restringiendo los inicios de sesión a usuarios particulares de hosts particulares. Las directivas allow/deny se procesan en el siguiente orden:DenyUsers
, AllowUsers
,DenyGroup
y finalmente AllowGroups
.
Por defecto, SSH server
ni siquiera está instalado. Tendrías que instalar el openssh-server
paquete antes de que nadie pudiera entrar por SSH.
Después de eso, cualquier usuario debe pasar dos controles:
- Autenticación SSH
- Comprobaciones de cuentas PAM
La autenticación SSH significa que el usuario debe tener una contraseña válida en /etc/shadow
o tienen una clave pública SSH válida con los permisos correctos en el ~/.ssh/authorized_keys
del usuario de destino .
Las contraseñas válidas se describen con más detalle en el crypt(3)
página de manual, pero básicamente si el segundo campo del usuario en /etc/shadow
es cualquier cosa que comience con $NUMBER$
, probablemente sea válido, y si es *
o !
, no es válido.
Los cheques de cuenta PAM básicamente significan que la cuenta no está vencida. Puedes verificar eso usando chage -l USERNAME
.
Entonces, para responder a sus preguntas, que yo sepa:
- Solo el root y la cuenta que crea durante el asistente de instalación pueden iniciar sesión en un nuevo sistema
- No, porque
www-data
tiene una contraseña hash de*
y no hay~www-data/.ssh/authorized_keys
archivo - No hay una lista única, porque hay varios requisitos, pero para tener una idea, puede intentar ejecutar
grep -v '^[^:]*:[!*]:' /etc/shadow