Exportar contraseñas desde el administrador de contraseñas `pass`

9

He estado usando el pass administrador de contraseñas durante un año más o menos, y es increíble, pero a veces me gusta probar otros administradores de contraseñas y luego necesito recuperar mis contraseñas.

Hasta ahora los he estado agregando manualmente, ya que los necesito, pero si quiero migrar a otro administrador de contraseñas necesito un script, porque no tengo la paciencia para hacerlo uno por uno, considerando que tengo cerca de cien (si no más).

¿Es posible? ¿Ya hay una solución?

He buscado una solución de vez en cuando durante los últimos dos meses y no he podido encontrar una en la que "solo ejecute este script y aumente la exportación".

¿Existe tal guión? Si no, ¿qué o dónde debo buscar para hacer uno?

greduan
fuente
@josten Sí, estoy pensando en tener algo donde solo pasa por cada archivo y obtiene la contraseña y la guarda en algún lugar. Esa es una forma de hacerlo. Pero no estoy seguro de cómo ...
greduan

Respuestas:

10

Puede hacer esto si está ejecutando gpg-agent (y su frase de contraseña está cargada), recorriendo los archivos en su almacén de contraseñas y escribiéndolos en un archivo separado.

Debe quitar los directorios iniciales de la ruta ( $PASSWORD_STORE_DIR) y la .gpgextensión de cada uno de los archivos en los subdirectorios, pero de lo contrario es lo suficientemente sencillo:

#!/usr/bin/env bash
# export passwords to external file

shopt -s nullglob globstar
prefix=${PASSWORD_STORE_DIR:-$HOME/.password-store}

for file in "$prefix"/**/*.gpg; do                           
    file="${file/$prefix//}"
    printf "%s\n" "Name: ${file%.*}" >> exported_passes
    pass "${file%.*}" >> exported_passes
    printf "\n\n" >> exported_passes
done
jasonwryan
fuente
Eso es ciertamente muy simple, en la línea de lo que estaba pensando. :) Muy rápido, ¿cómo agregaría el nombre de archivo antes del contenido de cada archivo y luego dos líneas entre cada archivo (para la separación)? No estoy muy familiarizado con las secuencias de comandos de shell.
greduan
Por cierto, la razón por la que quiero eso es porque algunas contraseñas (es decir, aquellas que no fueron importadas de LastPass) no tienen información sobre ellas además de la contraseña en sí, por lo que cuando hay muchas de esas no sé para qué es una contraseña.
greduan
@Greduan Actualizado para imprimir en el formato que solicitó.
jasonwryan