¿Por qué fallaría un inicio de sesión basado en contraseña ssh?

¿Por qué fallaría un inicio de sesión basado en contraseña ssh?

Actualmente uso claves ssh para conectarme a mi servidor (Ubuntu 18.04). Me gustaría permitir (en un ámbito específico y limitado) la posibilidad de iniciar sesión con contraseñas.

Cada vez que lo intento, mis contraseñas fallan. A continuación se muestra una sesión en la que configuro una contraseña y luego intento usarla:

~ # id
uid=0(root) gid=0(root) groups=0(root)

~ # passwd
Enter new UNIX password: <helloworld>
Retype new UNIX password: <helloworld>
passwd: password updated successfully

~ # ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no [email protected]
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:AlFtwpK4EhhaMXP5aT6fuQM9u9RYPq/o/sLJXfz++jM.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
[email protected]'s password: <helloworld>
Permission denied, please try again.

Pido disculpas si esto es algo obvio, no tengo idea de por qué el servidor acepta una nueva contraseña, luego acepta un inicio de sesión basado en contraseña para finalmente rechazar las credenciales.

EDITAR: el sshd_configarchivo que no pude agregar

~ # cat /etc/ssh/sshd_config | grep -v ^#  | grep -v ^$                                                                                                                  root@srv
Port 22
PasswordAuthentication no
ChallengeResponseAuthentication no
GSSAPIAuthentication no
UsePAM yes
PrintMotd no
UseDNS no
AcceptEnv LANG LC_*
Subsystem       sftp    /usr/lib/openssh/sftp-server
Match Address 192.168.10.0/24,192.168.20.0/24,127.0.0.0/8
    PasswordAuthentication yes

Respuesta1

El inicio de sesión falló porque no hay ninguna configuración PermitRootLogincuyo /etc/ssh/sshd_configvalor predeterminado sea prohibit-password, lo que significa que el inicio de sesión con contraseña está deshabilitado para root.

Añadiendo

PermitRootLogin yes

al Matchbloque permitiría rootiniciar sesión con contraseña o autenticación de clave pública.

Otra opción sería utilizar un usuario diferente.

información relacionada