459 - Soy un zoquete, otra vez hice un rm -rf

459 - Soy un zoquete, otra vez hice un rm -rf

¿Como guardar tus archivos de configuración de forma sencilla y aplicarla allí donde vayas?¿Como gestionar tus contraseñas?Utiliza chezmoi y gopass

1:25
-3:15

Hace casi ya tres años, en el episodio 173 del podcast titulado 173 – Hice un rm -rf. Salvado por Borg, te conté de una desagradable experiencia que había tenido, en la que por error había borrado algunos directorios. En aquel momento, me centré básicamente en como había conseguido recuperar el sistema gracia a las copias de seguridad. Recientemente, lo he vuelto a hacer, he vuelto a borrar un directorio completo, en concreto el directorio de configuración, el ~/.config. En este caso, te comentaré como lo he recuperado, casi por completo, sin tirar de las copias de seguridad. En este caso, he echado mano de mis dotfiles. Pero, para mi desgracia, no lo conseguí recuperar del todo. Para mi desgracia o mejor dicho debido, en este caso a mi torpeza, desidia o como lo quieras llamar, porque no tenía la configuración completa de mis dotfiles.

Vamos allá, vamos al turrón. Voy a contarte que es lo que me pasó, porque no conseguí recuperar la configuración completa, y que es lo que he hecho para remediarlo y que no me suceda en futuras ocasiones.

Te voy a hablar, no solo de dotfiles, sino de plantillas y de aplicaciones y servicios de contraseñas.

Soy un zoquete, otra vez hice un rm -rf

Soy un zoquete, otra vez hice un rm -rf

Un poquito de contexto

Como te decía en la introducción, soy un zoquete, volví a hacer un rm -rf, en este caso del directorio donde están las configuraciones de todas o de casi todas las aplicaciones que habitualmente utilizamos.

Si me preguntas porque lo hice, te diré, que si no recuerdo mal, pensaba, erróneamente que me encontraba en otro directorio. Así con toda la confianza que proporciona la ignorancia lo borré.

Llegados a este punto, tenía dos opciones. La primera opción era tirar de copia de seguridad y la segunda tirar de los dotfiles. Como te puedes imaginar, lo mas sensato sería haber recurrido a la primera de las opciones, pero, yo me decanté por mis dotfiles, que para eso lo tengo… error. No todo estaba en mis dotfiles, había configuraciones que no tenía guardadas.

Cambiando de gestor de doftiles

¿Porque no tirar de la copia de seguridad? Si recuerdas, hace un par de meses mas o menos te comenté que había cambiado de gestor de dotfiles, pasando de dotdrop a chezmoi. Esta fue la razón para poner en práctica el reestablecimiento de mis dotfiles.

Por indicarte, la razón de cambiar de dotdrop a chezmoi fue por dos razones fundamentales. Por un lado, que me estaba dando algunos problemas con algunas configuraciones y por otro que iba excesivamente lento, por lo que decidí su migración.

Sobre la información sensible

Sin embargo, aquí es donde viene el error que cometí… La información sensible.

Como te puedes imagina, eso de subir la información sensible a un repositorio es un fallo septembrino, un fallo de primero de git, que como te puedes imaginar en mas de una ocasión he cometido, pero, que últimamente vigilo con mucha atención.

Cuando te hablo de información sensible, ya te imaginas, que me refiero a claves, contraseñas, correos electrónicos, etc.

La cuestión es que últimamente, vigilo mucho esto, y si bien, quiero compartir mis dotfiles para que cualquiera puede hacer uso de ellas, lo cierto, es que hay que ir con cuidado con estas cosas.

Plantillas o templates

Así, ya con dotdrop comencé a utilizar plantillas o templates. Se trata de un archivo donde determinados valores quedan ocultos para ser reemplazados cuando se aplica la configuración en tu dispositivo. Esto es especialmente interesante para la información sensible. Es decir, en la plantilla, no está la contraseña, sino que aparece una variable, que posteriormente es reemplazada.

Sin embargo, por dejadez, desidia o por un simple ya lo haré mas adelante, dejé algunas configuraciones por guardar, dado que no había estudiado como se aplicaban esas plantillas.

Cuestión, que como te puedes imaginar, perdía algunas de esas configuraciones, por mi torpeza.

Gestores de contraseñas

Esto, como te decía, lo tenía perfectamente implementado con dotdrop, pero no lo llegué a implementar en el caso chezmoi. Entre otras cosas, porque los sistemas que utilizan ambos gestores eran diferentes. En el caso de dotdrop se utilizan variables de entorno, mientras que en el caso de chezmoi, tienes la opción de utilizar gestores de contraseñas.

Esto de utilizar los gestores de contraseñas, me pareció realmente interesante, y mucho mejor, como ya te puedes imaginar, que utilizar simples variables de entorno, que seguro que es mucho mas peligroso.

De esta manera, una vez, superado el enfado por la pérdida de esos archivos de configuración, pensé que era el momento de arreglarlo, y aprovechando la parte de los gestores de contraseñas, aprovecharlo bien.

Como te digo, chezmoi admite diferentes gestores de contraseñas para realizar el reemplazo de la información sensible. En concreto, estuve estudiando cuatro opciones,

  • Bitwarden/Vaultwarden
  • pass
  • keepass
  • gopass

Sobre el almacenamiento de la información sensible

Aunque tenía claro que quería guardar de forma segura toda la información sensible, tampoco quiero que sea un auténtico suplicio para mi, ni para nadie que lo quiera utilizar. Tiene que ser algo relativamente sencillo. Esto era una premisa a tener en cuenta.

Bitwarden/Vaultwarden

El que mas me gusta de todos, y no descarto que en un momento regrese a él es Bitwarden, y no me refiero a Vaultwarden. Sin embargo, en el caso de Bitwarden, tengo el problema del segundo factor de autenticación, que me hace imposible su utilización.

De aquí salté a Vaultwarden, para evitar esto de tener que utilizar el 2FA pero aquí, tenía dos cuestiones. La primera es que me parecía un poco absurdo tener que estar lidiando con un servicio local para que cuando tuviera que aplicar, de forma puntual, una configuración, me sirviera esas contraseñas o esa información sensible. Y por otro lado, la forma de loguear de forma interactiva, me estaba generando algunos problemas. Por estas razones decidí abandonar esta solución.

Pass

Sobre pass, poco te tengo que decir. Se trata de un sistema de gestión de contraseñas GNU, que está desde el principio de los tiempos. Sin embargo, yo no te se decir, como lo hice, pero me resultó un verdadero infierno ponerlo en marcha. Así que decidí abandonarlo.

Keepass

La siguiente de las opciones que estuve barajando fue Keepass. En su versión de terminal. Pero al igual que me sucedió con Bitwarden y Vaultwarden la forma de logarse no me termnaba de convencer para el uso que yo le doy, con lo que finalmente decidí abandonarla.

Gopass

Finalmente me decanté por gopass que es un gestor de contraseñas muy sencillo a la par que potente para el terminal.

Montando la película (chezmoi + gopass)

Primero gopass

En el caso de Manjaro/Arch la instalación es tremendamente sencilla. Para instalarlo tan solo tienes que ejecutar la siguiente instrucción,

sudo pacman -S gopass

El siguiente paso es crear un nueva clave gpg. Para esto simplemente tienes que ejecutar la siguiente instrucción,

gpg --full-generate-key

O si quieres generarla sin passphrase lo puedes hacer con,

gpg --batch --passphrase '' --quick-gen-key <nombre-de-la-clave> default default

Reemplazando el nombre de la clave por el que tu quieras. También puedes utilizar alguna de las claves que tengas. Puedes consultar las claves que tienes utilizando el comando,

gpg -K

Para inicializar el almacén de contraseñas, ejecuta,

gopass init

Y por último,

  • Para crear una contraseña gopass insert <nombre-de-la-contraseña>
  • Para obtener una contraseña gopass show --password <nombre-de-la-contraseña>

También tienes la opción de sincronizar todo tu almacén de contraseñas contra un almacén remoto.

Seguimos con chezmoi

Partiendo de que chezmoi ya lo tienes configurado, y ahora quieres añadir la configuración de alguna aplicación, como puedes ser himalaya, simplemente tiense que ejecutar la siguiente instrucción,

chezmoi add --template ~/.config/himalaya/config.toml

Reemplazas toda la información sensible y ya lo tienes. Por ejemplo, en mi caso quedaría de la siguiente forma,

display-name = "Lorenzo"
downloads-dir = "~/Descargas"
signature = "Saludos,"

[gmail]

default = true email = «{{ gopass «gmail/user» }}» backend = «imap» # imap, maildir or notmuch imap-host = «imap.gmail.com» imap-port = 993 imap-login = «{{ gopass «gmail/user» }}» imap-passwd-cmd = «gopass show -o gmail/pass» sender = «smtp» # smtp or sendmail smtp-host = «smtp.gmail.com» smtp-port = 465 smtp-login = «{{ gopass «gmail/user» }}» smtp-passwd-cmd = «gopass show -o gmail/pass»

Como puede ver, he reemplazado tanto el usuario como la contraseña, dejando en ambos caso la gestión de estos datos de la mano de gopass. En el caso particular de Himalaya funciona un tanto diferente, porque para las contraseñas utiliza comandos, no utiliza variables.

Un punto adicional sobre Chezmoi

Otro punto interesante a la hora de utilizar chezmoi, es que te permite utilizar diferentes variables que vienen definidas por defecto, como puede ser el directorio del usuario.

De esta forma, tus archivos de configuración son todavía mas independientes de ti. En general siempre intento utilizar ~ para el directorio de inicio. Sin embargo, hay determinadas aplicaciones que no lo permiten y tienes que utilizar rutas absolutas. En este caso, es muy cómodo el uso de chezmoi, por lo que te acabo de mencionar.


Más información,

Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.

3 comentarios en “Soy un zoquete, otra vez hice un rm -rf

  1. JO
    José Gerardo hace 2 años

    Jajajaja. El clásico error. A todos nos a pasado.

  2. VI
    Virtual Meqanic hace 2 años

    Probé gopass y es tan practico como sencillo de usar, muy buena herramienta, lamentablemente no logro encontrar la utilidad de chezmoi si por cada modificación de mi .zshrc, .vimrc, init.vim, etc. la tengo que estar subiendo con add, no seria mejora que se actualice automáticamente cosa de que me evite tener que hacerlo yo. Quizás yo no lo estoy entendiendo o ya venga con esa función y no la encontre? o tal vez la forma en que yo lo uso mis dotfiles no son compatibles con chezmoi pues la versión que vale para mi de los dotfiles es la ultima, osea la que esta en mi ordenador, la cual es la que voy modificando a medida que la uso, para mi son archivos muy dinámicos que se van modificando según mi uso del día a día y no algo estático. Te agradecería si me podes dar tu opinión u observación.

  3. MA
    marc hace 2 años

    pass es una maravilla, lo manejas directamente desde la consola, no necesitas nada de CPU, te crea la estructura de directorios de la forma y categoria que te de la gana para tener ordenadas las claves, vamos que es una maravilla, y super simple de manejar

Deja una respuesta

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