Mi config de emacs #1

Anteriormente hablé de algunos temas para postear y uno de ellos es explicar mi config de emacs. Este es el primer post explicando algunas de las cosas que uso diariamente, espero os guste.

Acerca de mi configuración

Mis archivos de configuración (dotfiles) se encuentran alojados en Sourcehut. Se encuentran organizados para ser usados con stow, encontrarán más información en el mismo repositorio.

Seguridad

Les hablaré acerca de la segurad por defecto en emacs… no es buena. Por ejemplo, cuando usan tramp para abrir algún archivo con permisos de sudo o root, o cuando se conectan por algún protocolo como ssh o ftp se habrán dado cuenta de que emacs pregunta en el minibuffer si es que quieren guardar los datos de autenticación (usuario y clave) en el archivo .authinfo que es un archivo de texto plano (para nada seguro). Lo ideal en cuanto a seguridad es mantener las claves bajo algún sistema de cifrado y por suerte emacs es capaz de usar un archivo .authinfo.gpg (nótese el gpg al final) para el guardado de claves. Al intentar abrir el archivo gpg se solicitará la clave de encripcación mediante su cliente por defecto de pinentry (algo como kde wallet o gnome keyring).

El código

Para que emacs use el archivo cifrado en lugar del normal basta con indicárselo en el archivo de configuración:

(setq auth-sources '("~/.authinfo.gpg"))

Es posible (cómo no jeje) que emacs sea su propio cliente pinentry con el paquete pinentry.el, para lo cual basta con instalarlo desde elpa con M-x package-install RET pinentry RET y luego decirle a emacs que lo use en la configuración:

(pinentry-start)

Finalmente es necesario decirle a pinentry que permita el uso de pinentry.el como cliente, esto se logra modificando gpg-agent.conf y reinciando el demonio:

$ echo allow-emacs-pinentry >> ~/.gnupg/gpg-agent.conf
$ gpgconf --reload gpg-agent

Conclusiones

Los pasos no son complicados y aumentan la seguridad de emacs en mucho. El archivo .authinfo.gpg mío lo llevo conmigo en una memoria usb y puedo revisar los datos cuando necesite (con la clave de cifrado) en las distintas máquinas que uso. Si tienes algún consejo o te interesa que explique otra parte de mi configuración puedes encontrarme en matrix como arroba yaca dospuntos matrix.drimyswinteri.ml o en telegram como arroba yacaCL.