pass es un gestor de contraseñas de línea de comandos. Sigue la filosofía UNIX, toda una cultura y unos valores surgidos alrededor del desarrollo del sistema operativo UNIX: minimalismo, modularidad, facilidad de reutilización del código. En la práctica este tipo de desarrollo produce programas que hacen una sola cosa muy bien, programas que se pueden combinar de la misma manera que se usan las bibliotecas en diferentes entornos de programación, programas que utilizan archivos de texto para guardar la información y configuración. Son valores que Linux ha heredado.
El funcionamiento de pass es simple: guarda cada contraseña en un archivo de texto encriptado bajo una clave GPG. La base de datos de contraseñas es a su vez un repositorio git en el que cada nueva contraseña o modificación de una existente se añade mediante un commit que realiza automáticamente pass.
La estructura de archivos de texto hace que interactuar con pass sea muy sencillo, así que hay multitud de clientes que permiten acceder a la base de datos de contraseñas desde navegadores, editores, entornos de programación…
A continuación explico brevemente cómo instalar y configurar pass en Linux Debian, y cómo instalar la extensión passff para acceder a la base de datos de contraseñas desde Firefox.
Instalación y configuración de pass en Debian
Para instalar pass en Linux Debian podemos recurrir a cualquier instalador de paquetes, por ejemplo apt. pass está en los repositorios de casi todas las distribuciones:
sudo apt-get install pass
Una vez instalado, hace falta hacer una mínima configuración antes de empezar a usar pass. Para usar pass hay que tener una clave GPG. Primero se crea la base de datos de contraseñas:
pass init "ID clave GPG"
A continuación se configura la base de datos como un repositorio de git:
pass git init
Las órdenes básicas para usar pass son pocas. El sitio web de pass contiene un resumen muy útil para comenzar, además del manual completo.
Integración de pass en Firefox
Para disponer de la base de datos de contraseñas en Firefox hay que completar dos pasos:
Instalar la extensión passff
Para instalar passff se puede visitar la página de la extensión en el sitio web de Mozilla.
Instalar el conector passff-host
En el repositorio de passff-host en github hay documentación para instalarlo en diferentes sistemas operativos y distribuciones. En Debian se puede instalar con la siguiente orden:
curl -sSL https://github.com/passff/passff-host/releases/download/1.0.1/install_host_app.sh | bash -s -- firefox
5 comentarios
¿Cómo solucionarías la necesidad de tener las claves accesibles desde diferentes dispositivos? ¿Sincronizando los archivos donde se almacenan? ¿Llevándolos en una llave USB?
Si el dispositivo al que tienes acceso en un momento dado no es tuyo, ¿habría alguna forma sencilla de acceder a una clave?
pass permite usar la base de datos desde distintas ubicaciones y dispositivos. Por ejemplo, hay disponibles varios clientes para Android, como < href="https://github.com/zeapo/Android-Password-Store">Android Password Store o pass-android.
La idea para disponer de la base de datos de contraseñas en cualquier dispositivo es sencilla, siguiendo la filosofía UNIX ;) Como la base de datos es un repositorio git, se puede clonar en cualquier dispositivo y acceder a él usando nuestra clave GPG. La sincronización se hace usando git también (git pull). Supongo que habrá clientes que lo hagan automáticamente si se les da el servidor git del que hacer pull.
No lo he probado más que desde Firefox, sin embargo, así que no te puedo decir exactamente cómo hacerlo.
Tiene lógica que se sincronice usando git…
Te preguntaba porque últimamente le he estado dando vueltas a eso de las contraseñas, y sigo sin tener claro qué opción es más segura y libre/autónoma sin dejar de ser cómoda. De momento estoy usando Bitwarden, que es software libre y funciona de maravilla, pero sigue siendo SaaS porque no me atrevo a usar una instancia propia para algo tan delicado.