Blog sobre software libre

Posts tagged "eshell,":

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
21 oct 2021

Eshell para administración de sistemas

Llevo un tiempo intentando sustituir mi uso de Bash por Eshell. No es que tenga nada en contra de Bash, simplemente eshell es parte de Emacs y está escrita en Lisp, por lo que la puedo adaptar como quiera y se integra mejor en mi flujo de trabajo.

Sin embargo seguí usando Bash para conectarme por ssh a mi servidor en la Raspberry Pi. Hace poco descubrí que no es necesario hacer ésto si uso la Eshell. Simplemente puedo abrir una conexión con Tramp desde Emacs, y una vez que esté por ejemplo en un directorio remoto con dired, abrir la Eshell. Mágicamente estaré ya dentro del servidor como si de una conexión por ssh se tratase.

Lo único que me queda por resolver es la configuración de Tramp, ya que ahora mismo se me queda pillado a veces y no consigo conectarme al servidor a través de él, aunque pueda hacerlo por ssh normalmente.

Tags: eshell, emacs
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.