Blog sobre software libre

Posts tagged "2FA":

11 mar 2024

2FA en Eshell

Ahora que la universidad pide el código de verificación en dos pasos hasta para respirar, decidí hacer una función en Eshell que me facilitara la obtención de dicho código.

Tenía una función básica, que no recuerdo dónde la saqué, pero requería tener un búfer de Eshell en segundo plano para que funcionara.

(defun eshell2fa ()
    (interactive)
    "Devuelve el id del 2FA en el portapapeles."
    (with-current-buffer "*eshell*"
    (eshell-return-to-prompt)
    (insert "id > /dev/kill")
    (eshell-send-input))
    )

La línea del insert es la que se encarga de obtener la clave a través del alias id, que usa oathtool para obtener el código. Luego se redirige al portapapeles con > /dev/kill.

El alias se define de la siguiente forma: alias id oathtool --counter=30 --totp=SHA1 -d 6 -b "clave-de-2FA"

Para mejorarla he añadido una línea que crea el búfer de Eshell si no ha sido creado anteriormente, con un unless

(defun eshell2fa ()
    (interactive)
    "Devuelve el id del 2FA en el portapapeles."
    (unless (gnus-buffer-live-p "*eshell*") (eshell) (switch-to-prev-buffer))
    (with-current-buffer "*eshell*"
    (eshell-return-to-prompt)
    (insert "id > /dev/kill")
    (eshell-send-input))
    )

Y luego sólo queda asignarla (por ejemplo a f12) para poder tener el código pulsando un botón.

(global-set-key (kbd "<f12>") 'eshell2fa)
Tags: emacs, eshell, 2FA
Other posts
Other posts
Creative Commons License
www.finaprosadigital.com by Carlos Pajuelo is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.