Cómo iniciar sesión en su Linux Desktop Con Google Authenticator

Para mayor seguridad, se puede requerir un token de autenticación basada en el tiempo , así como una contraseña para iniciar sesión en su PC Linux. Esta solución utiliza Google Authenticator y otras aplicaciones TOTP.
Este proceso se llevó a cabo en Ubuntu 14.04 con el estándar de escritorio de la Unidad y LightDM gestor de inicio, pero los principios son los mismos en la mayoría de distribuciones y escritorios Linux.
Anteriormente os mostramos cómo requerir Google Authenticator para el acceso remoto a través de SSH , y este proceso es similar. Esto no requiere la aplicación Google Authenticator, pero funciona con cualquier aplicación compatible que implementa el esquema de autenticación TOTP, incluyendo Authy .

Instale el Google Authenticator PAM

Como al establecer esto para el acceso SSH, vamos primero necesitamos instalar el PAM apropiado ("módulo conectable-autenticación") de software. PAM es un sistema que nos permite conectamos diferentes tipos de métodos de autenticación en un sistema Linux y les exigimos.
En Ubuntu, el siguiente comando instalará el Google Authenticator PAM. Abra una ventana de terminal, escriba el siguiente comando, pulse Intro, y proporcionar su contraseña. El sistema descargará el PAM de repositorios de software de su distribución Linux e instalarlo:
sudo apt-get install libpam-google-autenticador
Otras distribuciones de Linux con suerte deben tener este paquete disponible para una fácil instalación, también - abrir repositorios de software de su distribución Linux y realizar una búsqueda de la misma. En el peor de los casos, usted puede encontrar el código fuente para el módulo PAM en GitHub  y compilarlo usted mismo.
Como señalamos antes, esta solución no depende de "llamando a casa" a los servidores de Google. Implementa el algoritmo TOTP estándar y se puede utilizar incluso cuando el ordenador no tiene acceso a Internet.

Crea tu claves de autenticación

Usted ahora tiene que crear una clave de autenticación secreta y lo inserta en la aplicación Google Authenticator (o una similar) aplicación en su teléfono. En primer lugar, inicie la sesión como la cuenta de usuario en el sistema Linux. Abra una ventana de terminal y ejecute elgoogle-autenticador comandos. Escriba y y siga las instrucciones aquí. Esto creará un archivo especial en el directorio de la cuenta de usuario actual con la información de Google Authenticator.
También se le entramos por el proceso de conseguir que el código de verificación de dos factores en un Google Authenticator o aplicación TOTP similares en el teléfono inteligente. Su sistema puede generar un código QR puede escanear, o usted puede escribir en forma manual.
Asegúrese de anotar sus códigos de scratch de emergencia, que puede utilizar para acceder al sistema si usted pierde su teléfono.
Ir a través de este proceso para cada cuenta de usuario que utiliza su ordenador. Por ejemplo, si usted es la única persona que utiliza el ordenador, sólo puede hacerlo una vez en su cuenta de usuario normal. Si usted tiene a alguien que utiliza su computadora, usted querrá tener que firmen en su propia cuenta y generar un código de dos factores apropiados para su propia cuenta por lo que será capaz de iniciar la sesión.

Activar la autenticación

Aquí es donde las cosas se ponen un poco dicy. Cuando nos explicó cómo habilitar de dos factores para inicios de sesión SSH, necesitábamos sólo para las conexiones SSH. Esto aseguró que aún se podía conectarse localmente si usted perdió su aplicación de autenticación o si algo salió mal.
Dado que vamos a habilitar la autenticación de dos factores para inicios de sesión locales, hay problemas potenciales aquí. Si algo va mal, puede no ser capaz de iniciar la sesión. Teniendo esto en mente, le guiaremos a través de la habilitación de esta sólo a los inicios de sesión gráficos. Esto le da una vía de escape si usted lo necesita.

Habilitar Google Authenticator para gráficos inicios de sesión en Ubuntu

Siempre se puede habilitar la autenticación de dos pasos para inicios de sesión sólo gráficos, saltándose el requisito cuando se conecte desde la línea de texto. Esto significa que podría cambiar fácilmente a un terminal virtual, entrar allí, y revertir los cambios de modo Gogole Authenciator no sería necesario si se produce un problema.
Claro, esto abre un agujero en el sistema de autenticación, pero un atacante con acceso físico a su sistema ya puede explotar de todos modos . Es por eso que la autenticación de dos factores es particularmente eficaz para las conexiones remotas a través de SSH.
Aquí es cómo hacer esto para Ubuntu, que utiliza el gestor de LightDM inicio de sesión. Abra el archivo LightDM para la edición con un comando como el siguiente:
sudo gedit /etc/pam.d/lightdm
(Recuerde, estos pasos específicos sólo funcionará si su distribución y escritorio de Linux utilizan el gestor de inicio LightDM.)
Agregue la siguiente línea al final del archivo, y luego guardarlo:
auth required pam_google_authenticator.so nullok
El bit "nullok" al final le dice al sistema para permitir que un usuario se conecte, incluso si no han ejecute el comando google-autenticador para configurar la autenticación de dos factores. Si han configurarlo, van a tener que introducir un código de tiempo baesd - de lo contrario no lo hará. Retire la "nullok" y las cuentas de usuario que no han establecido un código de Google Authenticator simplemente no será capaz de conectarse de forma gráfica.
La próxima vez que un usuario inicia una sesión en forma gráfica, se le pedirá su contraseña y luego le solicita el código de verificación actual que se muestra en su teléfono. Si ellos no entran en el código de verificación, no se les permitirá entrar.
El proceso debe ser bastante similar para otras distribuciones y escritorios de Linux, como gestores de sesión de escritorio más comunes de Linux utilizan PAM. Es probable que sólo hay que editar un archivo diferente con algo similar para activar el módulo PAM adecuado.

Si utiliza Directorio principal Encryption

Versiones anteriores de Ubuntu ofrece un fácil opción "cifrado carpeta de inicio"  que encripta el directorio de toda la casa hasta que introduzca la contraseña. En concreto, este utiliza ecryptfs.Sin embargo, debido a que el software PAM depende de un archivo de Google Authenticator almacenado en su directorio por defecto, el cifrado interfiere con el PAM leer el archivo a menos que se asegure de que está disponible en forma no cifrada al sistema antes de iniciar la sesión. Consulte el archivo README para obtener más información sobre cómo evitar este problema si estás por dejar de utilizar las opciones de cifrado de directorio casa en desuso.
Las versiones modernas de Ubuntu ofrecen cifrado de disco completo en su lugar, que no tendrán ningún problema con las opciones anteriores. Usted no tiene que hacer nada especial

Ayuda, que se rompió!

Debido a que sólo capacitados esto para inicios de sesión gráfica, debe ser fácil de desactivar si causa un problema. Presione una combinación de teclas como Ctrl + Alt + F2 para acceder a una terminal virtual e ingrese allí con su nombre de usuario y contraseña. A continuación, puede utilizar un comando como /etc/pam.d/lightdm sudo nano para abrir el archivo para editar en un editor de texto terminal. Utilice  nuestra guía de Nano para eliminar la línea y guardar el archivo, y usted será capaz de conectarse de nuevo con normalidad.

También podría obligar a Google Authenticator que se requeriría para otros tipos de conexiones - potencialmente incluso todos los inicios de sesión del sistema - agregando la línea "pam_google_authenticator.so requerida auth" a otros archivos de configuración PAM. Tenga cuidado si usted hace esto. Y recuerde, usted puede desear agregar "nullok" para que los usuarios que no han pasado por el proceso de configuración aún pueden identificarse.
Más documentación sobre cómo usar y configurar este módulo PAM se puede encontrar en el archivo README del software en GitHub .