ssh con frase de contraseña, respaldo a Google Authenticator

8

Con la introducción de Google Authenticator y la capacidad de usarlo con ssh, me preguntaba si alguien ha pasado por una configuración sshd_config que podría

  • primero esperar una llave
  • Si esto falla, recurra a una autenticación con Google Authenticator

La idea es conectarse normalmente sin problemas con una llave y, generalmente en entornos menos amigables, conectarse con un mecanismo de dos factores.

WoJ
fuente

Respuestas:

16

Sí, tengo una configuración donde puedo sshusar mi servidor usando la autenticación de clave pública, con un respaldo a la autenticación de dos factores con Google Authenticator + contraseña cuando mi clave privada no está disponible. Estos son los pasos que puede seguir para configurarlo.

Instalación de Google Authenticator

Mi servidor ejecuta Ubuntu Bionic Beaver (18.04.1). Puede instalar Google Authenticator usando apt:

$ sudo apt install libpam-google-authenticator

Configurando sshd

Abra /etc/pam.d/sshdy agregue la siguiente línea en la parte superior:

auth optional pam_google_authenticator.so

Abrir /etc/ssh/sshd_configy cambiar una línea. La línea existente es

ChallengeResponseAuthentication no

y deberías cambiarlo a

ChallengeResponseAuthentication yes

Configuración de Google Authenticator para su cuenta

El siguiente paso es activar Google Authenticator para su cuenta. Lo haces simplemente ejecutando:

$ google-authenticator

Asegúrese de ejecutar esto como el usuario que realizará las conexiones ssh, no como root. Anote su nueva clave secreta y sus códigos de emergencia para raspar. El asistente le hará varias preguntas para configurar los ajustes de seguridad de su cuenta.

Configurando su aplicación móvil

Yo uso la aplicación Google Authenticator para iPhone. Esta aplicación tiene un botón [+] que me permite agregar un nuevo token basado en tiempo usando la clave secreta que obtuve del google-authenticatorcomando en mi servidor. Fue trivial de configurar. No puedo ayudarte con aplicaciones en ninguna otra plataforma, pero imagino que el proceso es igualmente simple.

Tirando del gatillo

Lo último que debe hacer es reiniciar sshd.

$ sudo /etc/init.d/ssh restart

En este punto, cuando intentas conectarte al servidor cuando tu clave privada está disponible, la autenticación simplemente funciona. Cuando su clave privada no esté disponible, recibirá un mensaje para un código de verificación y luego la contraseña de su cuenta.

Bingo, autenticación de dos factores.

William Jackson
fuente
Muchas gracias, esto es muy completo y es exactamente lo que estaba buscando.
WoJ
Se ve genial, exactamente lo que necesito. Seguiré tus instrucciones y daré tu opinión después.
peipst9lker