Tutoriales

Utilice la rasgo de comandos de oathtool Linux para la demostración en dos pasos (2FA)

I No deseo utilizar Google Authenticator o la aplicación Authy que genera códigos de demostración de 2 pasos (2FA) en mi teléfono iOS / Android. ¿Hay alguna forma de que pueda producir códigos 2FA desde la rasgo de comandos de Linux para sitios populares como Gmail, Twitter, Facebook, Amazon y más?

Las aplicaciones móviles generan códigos de demostración seguros en 2 pasos para proteger sus cuentas en rasgo de los piratas informáticos (malos). Obtienes una capa adicional de seguridad. Por otra parte de su contraseña, debe ingresar códigos 2FA para cada inicio de sesión. Esta página explica cómo usar las OTP de oathtool (contraseña de un solo uso) en Linux para proteger su Gmail y otras cuentas en rasgo. En circunstancia de esperar mensajes de texto, obtenga códigos de demostración de forma gratuita desde el comando oathtool de Linux.



Cómo instalar la útil de rasgo de comandos de oathtool Linux

oathtool es una útil de rasgo de comandos para ocasionar y validar OTP y gpg2 es una útil de encriptación y firma OpenPGP para encriptar claves privadas utilizadas por oathtool. Escriba los comandos según su distribución de Linux para instalar el mismo.

Fedora Linux instalar oathtool

Fiordo la aplicación de terminal y escriba el próximo comando dnf:
$ sudo dnf install oathtool gnupg2

CentOS Linux / RHEL instalar oathtool

Primero habilite el repositorio EPEL en RHEL o CentOS 7 y ejecute el próximo comando yum:
$ sudo yum install oathtool gnupg2

Debian / Ubuntu Linux instalar oathtool

Simplemente use el comando apt o el comando apt-get para instalar lo mismo:
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install oathtool gnupg2

SUSE / OpenSUSE Linux instalar oathtool

Simplemente ejecute el próximo comando zypper:
$ sudo zypper ref
$ sudo zypper in oath-toolkit gpg2

Debe utilizar una computadora dedicada (RPi) o un disco USB para juntar sus archivos ~ / .2fa /. Recuerde su maniquí de amenaza. La idea es simple, tanto su computadora portátil como las teclas ~ / .2fa / no deben encontrarse comprometidas al mismo tiempo. Por lo tanto, se recomiendan dos dispositivos separados.

Demostración en 2 pasos de Linux (2FA) usando oathtool

La sintaxis para ocasionar totp es la próximo:
oathtool -b --totp 'private_key'
Por lo común, private_key solo se muestra una vez cuando habilita 2FA con servicios en rasgo como Google / Gmail, Twitter, Facebook, Amazon, PayPal, cuentas bancarias, etc. Debe suministrar la clave_privada en secreto y nunca compartirla con nadie. Aquí hay una sesión de muestra que crea código para mi cuenta de Twitter.
$ oathtool -b --totp 'N3V3R G0nn4 G1v3 Y0u Up'
Panorama de muestra:

944092

Cómo ocasionar código de autenticación de dos factores desde su CLI de Linux

Genere un nuevo par de claves para el criptográfico si no tiene una secreto gpg, ejecute:
$ gpg2 --full-gen-key

A continuación, cree algunos directorios y scripts auxiliares:
$ mkdir ~/.2fa/
$ cd ~/.2fa/

Puede enumerar las claves GPG, incluida la identificación de usufructuario de GnuPG y la identificación de secreto, ejecute:
$ gpg --list-secret-keys --keyid-format LONG

Secuencia de comandos auxiliar de script de shell para transcribir el secreto de totp (claves)

Cree un script de shell llamado encrypt.key.sh:

#!/bin/bash
# Purpose: Encrypt the totp secret stored in $dir/$service/.key file
# Author: Vivek Gite {https://www.cyberciti.biz/} under GPL v 2.x or above
# --------------------------------------------------------------------------
# Path to gpg2 binary
_gpg2="/usr/bin/gpg2"
 
## run: gpg --list-secret-keys --keyid-format LONG to get uid and kid ##
# GnuPG user id 
uid="YOUR-EMAIL-ID"
 
# GnuPG key id 
kid="YOUR-KEY"
 
# Directory that stores encrypted key for each service 
dir="$HOME/.2fa"
 
# Now build CLI args
s="$1"
k="${dir}/${s}/.key"
kg="${k}.gpg"
 
# failsafe stuff
[ "$1" == "" ] && { echo "Usage: $0 service"; exit 1; }
[ ! -f "$k" ] && { echo "$0 - Error: $k file not found."; exit 2; }
[ -f "$kg" ] && { echo "$0 - Error: Encrypted file "$kg" exists."; exit 3; }
 
# Encrypt your service .key file 
$_gpg2 -u "${kid}" -r "${uid}" --encrypt "$k" && rm -i "$k"

Secuencia de comandos auxiliar de script de shell para descifrar el secreto de totp y ocasionar código 2FA

Cree un script de shell llamado desencriptar.key.sh:

#!/bin/bash
# Purpose: Display 2FA code on screen
# Author: Vivek Gite {https://www.cyberciti.biz/} under GPL v 2.x or above
# --------------------------------------------------------------------------
# Path to gpg2 binary
_gpg2="/usr/bin/gpg2"
_oathtool="/usr/bin/oathtool"
 
## run: gpg --list-secret-keys --keyid-format LONG to get uid and kid ##
# GnuPG user id 
uid="YOUR-EMAIL-ID"
 
# GnuPG key id 
kid="YOUR-KEY"
 
# Directory 
dir="$HOME/.2fa"
 
# Build CLI arg
s="$1"
k="${dir}/${s}/.key"
kg="${k}.gpg"
 
# failsafe stuff
[ "$1" == "" ] && { echo "Usage: $0 service"; exit 1; }
[ ! -f "$kg" ] && { echo "Error: Encrypted file "$kg" not found."; exit 2; }
 
# Get totp secret for given service
totp=$($_gpg2 --quiet -u "${kid}" -r "${uid}" --decrypt "$kg")
 
# Generate 2FA totp code and display on screen
echo "Your code for $s is ..."
code=$($_oathtool -b --totp "$totp")
## Copy to clipboard too ##
## if xclip command found  on Linux system ##
type -a xclip &>/dev/null
[ $? -eq 0 ] &&  xclip -sel clip; echo "*** Code copied to clipboard too ***"; 
echo "$code"
 
# Make sure we don't have .key file in plain text format ever #
[ -f "$k" ] && echo "Warning - Plain text key file "$k" found."

2FA usando oathtool en la rasgo de comandos de Linux para la cuenta de Gmail

Veamos un ejemplo completo para la cuenta de Google / Gmail. Para habilitar la encuentro 2FA e iniciar sesión:
https://www.google.com/landing/2step/
Visite Demostración en dos pasos> Comenzar:

Es posible que deba confirmar su número de teléfono móvil. Una vez verificado, desplácese en torno a debajo y elija la aplicación Authenticator:

¿Qué tipo de telefono tienes? Elija iPhone o Android ya que vamos a usar nuestra aplicación CLI y haga clic en Posterior:

Asegúrese de hacer clic en «NO SE PUEDE ESCANEAR» para ver la secreto secreta totp y copiarla:

Cd en el directorio ~ / .2fa / y ejecute los siguientes comandos:
cd ~/.2fa/
### Step 1. create service directory ###
### [email protected] also act as service name for encrypt.key.sh ###
mkdir [email protected]
### Step 2. Store totp secret key ###
echo -n 'hilp zs6i c5qu bx7z akiz q75e wk5z z66b' > ~/.2fa/[email protected]/.key

Cifre el archivo de secreto secreta totp llamado ~/.2fa/[email protected]/.key con gpg y protéjalo con contraseña por razones de seguridad y privacidad utilizando nuestro encrypt.key.sh secuencia de comandos de ayuda:
### Step 3. Secure totp secret key for service named [email protected] ###
./encrypt.key.sh [email protected]


Finalmente haga clic en el tallo Posterior:

Es hora de crear su primer código de 6 dígitos usando el comando oathtool. Sin bloqueo, automatizamos este proceso usando desencriptar.key.sh script de shell que descifra el secreto totp y genera el código 2FA de 6 dígitos. Simplemente ejecute:
./decrypt.key.sh [email protected]
Debe escribir la frase de contraseña de gpg para desbloquear la secreto secreta para el servicio llamado [email protected]:

Finalmente, verá el código de 6 dígitos de la próximo guisa en la pantalla:

En 30 segundos, debe escribir el código 330197 y hacer clic en el tallo de demostración:

Y ya terminaste:

Cómo añadir otro servicio

La sintaxis es harto simple:

  1. Inicie sesión en servicios en rasgo como Twitter, Facebook, cuenta bancaria y busque la aplicación Authenticator 2FA. Por ejemplo, configuremos la cuenta de Twitter 2FA usando la aplicación de rasgo de comandos de Linux.
  2. Copie el secreto de totp de la cuenta de Twitter.
  3. Cree un nuevo directorio de servicios: mkdir ~ / .2fa / twitter.com /
  4. Cree un nuevo archivo .key: echo -n 'tu-clave-secreta-de-twitter-totp'> ~ / .2fa / twitter.com / .key
  5. Genere un nuevo archivo encriptado PGP por razones de seguridad y privacidad: ~ / .2fa / encrypt.key.sh twitter.com
  6. Descifra el secreto totp y genera el código 2FA de 6 dígitos cuando necesita iniciar sesión en Twitter: ~ / .2fa / decrypt.key.sh twitter.com

Puede repetir el proceso preliminar para cualquier servicio que muestre el secreto totp cercano con el código QR.

Complemento de soporte de autocompletado de bash para desencriptar.key.sh

Edita tu ~ / .bash_profile o ~ / .bash_aliases y agregue lo próximo para añadir la finalización cibernética de bash en Linux:

# Add path to your ~/.2fa/ dir 
export PATH=$PATH:/home/vivek/.2fa/
_decrypt_key_sh() sed 's/.2fa///')
	complete -W "$services" decrypt.key.sh
	complete -W "$services" ~/.2fa/decrypt.key.sh

complete -F _decrypt_key_sh decrypt.key.sh

Ahora puede ejecutarlo de la próximo guisa para obtener los nombres de los servicios:
$ decrypt.key.sh

# complete paypal service name for 2fa #
$ decrypt.key.sh pa

Conclusión

La principal preeminencia de la rasgo de comandos de Linux es que puede hacer una copia de seguridad de su directorio y claves ~ / .2fa /. Sus secretos / claves de totp siempre están encriptados y protegidos con contraseña por gpg2. Las aplicaciones móviles como Google Authenticator generalmente no le permiten sincronizar o copiar secretos / claves por razones de seguridad. Entonces, si pierde el teléfono o cambia de teléfono, no podrá iniciar sesión en la cuenta. Esta configuración es simple y manejable de hacer una copia de seguridad / restaurar siempre que recuerde su frase de contraseña gpg2. Le recomiendo insistentemente que asimismo habilite el criptográfico de disco completo (FDE). Este método o las aplicaciones basadas en teléfonos móviles no son 100% seguras contra malware u otros problemas. Si es compatible, utilice siempre claves de seguridad de hardware (U2F / claves físicas). La próxima vez le mostraré cómo usar aplicaciones GUI para el mismo propósito. Consulte la página de manual de oathtool para obtener más información aquí.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba