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_config
archivo 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 PermitRootLogin
cuyo /etc/ssh/sshd_config
valor 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 Match
bloque permitiría root
iniciar sesión con contraseña o autenticación de clave pública.
Otra opción sería utilizar un usuario diferente.