Esta traducción al Español sobre las instrucciones alojadas en la página del proyecto pass está licenciada por el Autor del Sitio bajo los mismos términos y condiciones de la Web antes citada y por la Licencia FDL 1.3 .
La gestión de contraseñas debería ser sencilla y seguir la filosofía Unix. Con pass, cada contraseña está dentro de un archivo encriptado gpg cuyo nombre es el título del sitio web o recurso que requiere la contraseña. Estos archivos encriptados pueden organizarse en jerarquías de carpetas con sentido, copiarse de un ordenador a otro y, en general, manipularse usando utilidades estándar de gestión de archivos en línea de comandos.
Todas las contraseñas están en ~/.password-store, pass facilita enormemente la gestión de estos archivos de contraseñas individuales. y proporciona algunos comandos para añadir, editar, generar y recuperar contraseñas. Es un script de shell muy corto y sencillo. Es capaz de poner temporalmente las contraseñas en su portapapeles y rastrear los cambios de contraseña usando git.
Puede editar el almacén de contraseñas usando comandos de shell unix ordinarios junto con el comando pass. No hay formatos de archivo extraños o nuevos paradigmas que aprender. Hay completado bash para que pueda simplemente pulsar tabulador para rellenar nombres y comandos, así como completado para zsh y fish disponible en la carpeta de completado. La comunidad, muy activa, ha producido muchos clientes e interfaces gráficas impresionantes para otras plataformas, así como Extensiones para el propio pass (vea Extensiones para pass).
El comando pass está ampliamente documentado en su página de manual.
Es una carpeta que -generalmente- se encuentra en la raíz de la partición de usuario ~/.password-store
Podemos listar todas las contraseñas existentes en la tienda:
--- ~ » pass Password Store ├── Correos │ ├── disroot │ └── protonmail ├── Distros │ ├── Gentoo │ └── GentooForum ├── Git │ ├── codeberg │ ├── gitlab │ └── notabug ├── Nube │ ├── Mega1 │ └── archive.org └── Recursos └── postimage
Y también podemos mostrar contraseñas:
--- ~ » pass Correos/disroot Usuario: usuario@disroot.org Contraseña: 123 URL: https://webmail.disroot.org/
O copiarlos en el portapapeles:
--- ~ » pass -c Correos/disroot Copied Correos/disroot to clipboard. Will clear in 45 seconds. --- ~ »
--- ~ » pass -c Correos/disroot Correos/disroot copiado al portapapeles. Se borrará en 45 segundos. --- ~ »
Habrá un bonito diálogo de entrada de contraseña usando el agente gpg estándar (gpg-agent, que puede ser configurado para permanecer autenticado durante varios minutos), ya que todas las contraseñas están encriptadas.
Podemos añadir contraseñas existentes al almacén con insert:
--- ~ » pass insert Correos/prueba Enter password for Correos/prueba: Retype password for Correos/prueba: --- ~ »
--- ~ » pass insert Correos/prueba Ingrese la contraseña para Correos/prueba: Vuelva a escribir la contraseña para Correos/prueba: --- ~ »
Esto también maneja contraseñas multilínea u otros datos con --multiline o -m, y las contraseñas pueden ser editadas en su editor de texto predeterminado usando pass edit pass-name.
La utilidad puede generar nuevas contraseñas usando /dev/urandom internamente:
--- ~ » pass generate Correos/prueba The generated password to Correos/prueba is: <Q>Da3(Ja|R#rd<?E%GRxdqu0 --- ~ »
--- ~ » pass generate Correos/prueba La contraseña generada para Correos/prueba es: <Q>Da3(Ja|R#rd<?E%GRxdqu0 --- ~ »
Es posible generar contraseñas sin símbolos usando --no-symbols o -n, y podemos copiarlas al portapapeles en lugar de mostrarlas en la consola usando --clip o -c.
Y, por supuesto, las contraseñas se pueden eliminar:
--- ~ » pass rm Correos/prueba Are you sure you would like to delete Correos/prueba? [y/N] y '/home/a6/.password-store/Correos/prueba.gpg' borrado --- ~ »
--- ~ » pass rm Correos/prueba ¿Está seguro de que desea eliminar Correos/prueba? [y/N] y '/home/$USER/.password-store/Correos/prueba.gpg' borrado --- ~ »
Si el almacén de contraseñas es un repositorio git, ya que cada manipulación crea un commit git (crea una confirmación), puede sincronizar el almacén de contraseñas usando pass git push y pass git pull, que llaman a git-push o git-pull en el almacén.
Puede leer más ejemplos y más características en la página de manual.
Para empezar, hay un único comando para inicializar el almacén de contraseñas:
--- ~ » pass init "E02DB974DCF71D06" mkdir: se ha creado el directorio '/home/$USER/.password-store/' Password store initialized for E02DB974DCF71D06 --- ~ »
--- ~ » pass init "E02DB974DCF71D06" mkdir: se ha creado el directorio '/home/$USER/.password-store/' Almacén de contraseñas inicializado para E02DB974DCF71D06 --- ~ »
Aquí, E02DB974DCF71D06 es el ID de mi clave GPG. Puede usar su clave GPG estándar o usar una alternativa especialmente para el almacén de contraseñas, como se muestra arriba. Se pueden especificar múltiples claves GPG, para usar pass en un equipo, y diferentes carpetas pueden tener diferentes claves GPG, usando -p.
Adicionalmente podemos inicializar el almacén de contraseñas como un repositorio git:
--- ~ » pass git init Inicializado repositorio Git vacío en /home/$USER/.password-store/.git/ [master (commit-raíz) 1184af7] Add current contents of password store. 1 file changed, 1 insertion(+) create mode 100644 .gpg-id [master bc76a23] Configure git repository for gpg file diff. 1 file changed, 1 insertion(+) create mode 100644 .gitattributes --- ~ »
Si se inicializa un repositorio git, pass crea un commit git (una confirmación de los cambios en el repositorio git) cada vez que se manipula el almacén de contraseñas.
Hay un ejemplo de inicialización más detallado en la página de manual.
El almacén de contraseñas no impone ningún esquema particular o tipo de organización de sus datos, ya que es simplemente un archivo de texto plano, que puede contener datos arbitrarios. Aunque el caso más común es almacenar una sola contraseña por entrada, algunos usuarios avanzados descubren que les gustaría almacenar más que sólo su contraseña dentro del almacén de contraseñas, y además almacenar respuestas a preguntas secretas, URLs de sitios web, y otra información sensible, o metadatos. Como el almacén de contraseñas no impone un esquema propio, puede elegir su propia organización. Existen muchas posibilidades.
Una de ellas es utilizar la funcionalidad multilínea de pass (--multiline o -m en insert) y almacenar la contraseña en la primera línea del archivo y la información adicional en las líneas siguientes. Por ejemplo, Correos/disroot podría tener este aspecto:
Contraseña: Yw|ZSNH!}z"6{ym9pI URL: https://webmail.disroot.org/ Nombre de Usuario: usuario@disroot.org Pregunta Secreta: ¿Quién ganó la final en España?
Este es el esquema de organización preferido por el autor. Las opciones --clip / -c sólo copiarán la primera línea de un archivo de este tipo en el portapapeles, facilitando así la obtención de la contraseña para los formularios de inicio de sesión y conservando la información adicional en el mismo archivo.
Otro método consiste en utilizar carpetas y almacenar cada dato dentro de un archivo de esa carpeta. Por ejemplo, Correo/disroot/contraseña contendría la contraseña del correo dentro del directorio Correo/disroot/ y Correos/disroot/pregunta-secreta contendría una pregunta secreta. Otra posibilidad sería almacenar la contraseña en Correos/disroot/contraseña y los datos adicionales en Correos/disroot/datos-disroot.meta. E incluso otro enfoque podría ser usar multilínea, como se ha descrito anteriormente, pero poner la plantilla URL en el nombre de archivo en lugar de dentro del archivo.
La cuestión es que las posibilidades aquí son extremadamente numerosas, y existen muchos otros esquemas de organización no mencionados anteriormente; Usted tiene la libertad de elegir el que mejor se adapte a su flujo de trabajo.
Para facilitar la gran variedad de usos que se les ocurren a los usuarios, pass admite extensiones. Las extensiones instaladas en /usr/lib/password-store/extensions (o alguna variedad específica de la distribución) siempre están habilitadas. Las extensiones instaladas en ~/.password-store/.extensions/COMMAND.bash están habilitadas si la variable de entorno PASSWORD_STORE_ENABLE_EXTENSIONS es true Lea la página de manual para más detalles.
La comunidad ha producido muchas extensiones de este tipo:
Nota
1 tomb (tumba) es un programa que permite el cifrado de archivos ocultos.
La comunidad ha reunido una impresionante lista de clientes e interfaces gráficas para diversas plataformas:
Para liberar los datos de contraseñas de las garras de otros gestores de contraseñas (hinchados), varios usuarios han ideado diferentes organizaciones de almacenamiento de contraseñas que funcionan mejor para ellos. Algunos usuarios han contribuido con scripts para ayudar a importar contraseñas de otros programas:
pass fue escrito por Jason A. Donenfeld de zx2c4.com y está licenciado bajo la GPLv2+.
Este es un proyecto muy activo con una buena dosis de colaboradores. La mejor manera de contribuir al almacén de contraseñas es unirse a la lista de correo y enviar parches con formato git. También puede unirse a la discusión en #pass en Libera.Chat.