¿Cómo puedo habilitar la autenticación de contraseña y clave pública con OpenSSH?

Respuestas:

12

Finalmente está disponible a partir de OpenSSH 6.2 (lanzado en marzo de 2013), utilizando la AuthenticationMethodsopción de configuración.

Por ejemplo, puede agregar la siguiente línea sshd_configpara requerir autenticación de clave pública y contraseña:

AuthenticationMethods publickey,password

Al iniciar sesión, sshy scpen primer lugar realizar la autenticación de clave pública, y luego petición de contraseña:

$ ssh [email protected]
Authenticated with partial success.
[email protected]'s password:

Si tiene una contraseña en su archivo de clave privada, por supuesto, primero se le pedirá eso. Ejemplo usando PuTTY :

Using username "user".
Authenticating with public key "rsa-key-20131221-user"
Passphrase for key "rsa-key-20131221-user":
Further authentication required
[email protected]'s password:
Søren Løvborg
fuente
1

OpenSSH en RHEL / CentOS 6.3 ahora admite esta característica, aunque no puedo encontrarla mencionada en las notas de la versión de OpenSSH. De las notas de la versión de RHEL :

SSH ahora se puede configurar para requerir múltiples formas de autenticación (mientras que anteriormente SSH permitía múltiples formas de autenticación de las cuales solo se requería una para un inicio de sesión exitoso); por ejemplo, iniciar sesión en una máquina habilitada para SSH requiere que se ingrese una frase de contraseña y una clave pública. Las opciones RequiredAuthentications1y RequiredAuthentications2se pueden configurar en el /etc/ssh/sshd_configarchivo para especificar las autenticaciones necesarias para un inicio de sesión exitoso. Por ejemplo:

  ~]# echo "RequiredAuthentications2 publickey,password" >> /etc/ssh/sshd_config

Para obtener más información sobre las /etc/ssh/sshd_configopciones mencionadas , consulte la sshd_configpágina del manual.

mgorven
fuente
0

Es posible pero de una manera poco clara y limitada. Primero solo permite la autenticación de clave pública. Luego, /etc/ssh/sshd_configagregue un ForceCommandarchivo que ejecute un script que verificará la contraseña.

El script interrumpirá SFTP a menos que verifique que el comando es sftp y lo permita sin una contraseña.

Nunca lo he intentado para que alguien pueda ver más problemas.

Mark Wagner
fuente