Para migrar el repositorio de contraseñas que usa pass y poner el sistema en marcha en una nueva máquina hay que completar 3 pasos. Para este pequeño tutorial voy a usar a modo de ejemplo:
- persona, como nombre de usuario,
- antigua, como nombre de la máquina en la que está funcionando pass,
- nueva, como nobre de la máquina a la que se quiere migrar pass y ponerlo en funcionamiento.
- 192.168.1.34, como IP de la máquina antigua.
1. Instalar pass en la nueva máquina
persona@nueva:~$ sudo apt install pass
También se puede instalar la extensión de pass para Firefox para facilitar el uso de las contraseñas con este navegador.
2. Importar la clave GPG a la nueva máquina
Lo primero es crear una copia de seguridad del par de claves desde la línea de comandos de la máquina en la que esté funcionando, en este ejemplo antigua:
persona@antigua:~$ gpg -ao miclave-public.key --export key_id persona@antigua:~$ gpg -ao miclave-private.key --export-secret-keys key_id
Para conseguir la gpg key id:
persona@antigua:~$ gpg --fingerprint persona@example.net pub rsa3072 2018-03-19 [SC] 3782CBB60147010B330523DD26FBCC7836BF353A
La key ID son los 8 últimos números del fingerprint. En el caso de arriba: 36BF353A
Para importar la clave en otra máquina hay que copiar los archivos desde antigua a nueva y luego:
gpg --import miclave-public.key gpg --import miclave-private.key
3. Copiar el directorio .password-store
Este directorio contiene el repositorio git con las contraseñas cifradas. Aunque alguien accediese a él no podría ver las contraseñas sin la clave GPG con la que están cifradas.
Para copiar el directorio a la nueva máquina se puede hacer con rsync o haciendo un git clone al repositorio. Aquí lo hago de la primera manera.
Antes de realizar la copia conviene asegurarse de que la copia local está actualizada con respecto a la copia del servidor git, si se usa un servidor remoto para sincronizar las contraseñas entre distintas máquinas. Para ello:
persona@antigua:~$ pass git pull
Para copiar con rsync desde la máquina de destino:
persona@nueva:~$ rsync -zavh persona@192.168.1.34:.password-store .
Algún posible problema
En una ocasión, tras completar los pasos anteriores e ir a consultar una contraseña, pass me devolvía el error Unusable public key
.
Encontré la solución en el foro superuser, a aplicar en la máquina nueva:
gpg --edit-key gpg>trust