Guida all'uso di pass per la condivisione delle password dei vari servizi

Installare e inizializzare pass

$ sudo apt-get install pass

$ pass init KEY-ID

dove KEY-ID e' il key-id della vostra chiave, ottenibile ad es. con:

$ gpg  --keyid-format long  --list-keys vostro@indirizzo.mail

che vi da un output del tipo:

pub   rsa4096/CQ0C9FEE5FAC43WE 2018-06-20 [SC] [expires: 2022-06-20]
     DF1RTB9995A2519D38A635E6CQ0C9FEE5FAC43WE
uid                 [ultimate] prova <prova@prova.org>
sub   rsa4096/RT5654D2D6C586GRT 2018-06-20 [E] [expires: 2022-06-20]

il key-ID lungo e' quella stringa nella seconda riga

una volta inizializzato vi troverete una cartella ~/.password-store con dentro un file .gpg-id che contiene il key-id che gli avete appena indicato.

Ora avete uno store di password vuoto, che potete popolare con le vostre password

Uso base di pass

Per aggiungere la password della nostra casella di posta sul server riseup.net ad es. scriviamo:

$ pass insert posta_su_riseup

vi verra' chiesto di inserire la password (2 volte) e a quel punto verra' creato un file ~/.password-store/posta_su_riseup.gpg

altri comandi sono

$ pass ls   (per vedere la lista dei nomi delle password presenti)
$ pass show posta_su_riseup (per visualizzare la password a video  (vi verra' chiesta la pwd della chiave gpg per decrittarla))
$ pass -c show posta_su_riseup  (per copiare nella clipboard la password)
$ pass edit posta_su_riseup  (per modificare una password)
$ pass rm posta_su_riseup    (per eliminare una password salvata)
$ pass mv posta_su_riseup  posta/riseup  (per muovere la password in un'altra posizione)

importare il repository delle password di unit

dovete avere un account sul nostro git ed essere parte del gruppo unit per accedere

$ cd ~/.passwordstore
$ git clone ssh://git@git.abbiamoundominio.org:10022/unit/pass.git unit

ora avete una cartella unit nel password-store, se eseguite

$ pass ls

vedrete l'elenco delle vostre password, comprese quelle di unit, mentre il comando:

$ pass ls unit

vi mostra solo l'elenco delle password di unit.

se guardate il file ~/.password-store/unit/.gpg-id vedrete i key-ID delle chiavi che possono decrittare le password.

se volete aggiungere e/o modificare delle password, dovete avere nel vostro keyring tutte le chiavi indicate li dentro, e queste chiavi devono anche essere trusted, quindi le dovreste firmare (previa conferma che le chiavi siano delle persone giuste, quindi verifica del fingerprint in qualche modo, di persone, per telefono, chat in canali sicuri etc.).

lavorare sul repository

se aggiungete o modificate password nella cartella unit (che e' un repository git clonato localmente), pass crea automaticamente un commit per git.

Per mandare la nuova password:

$ git pull 
$ git push

questo comando puo' essere automatizzato creando un git hook in ~/.password-store/unit/.git/hooks/post-commit contenente

git pull
git push

in questo modo ogni modifica al repository locale viene immediatamente committata e pushata sul server.

Aggiungere o rimuovere chiavi per cui crittare le password

Se una persona entra o esce dal gruppo, la sua chiave deve essere aggiunta o tolta dalla lista delle chiavi presente in ~/.password-store/unit/.gpg-id

quindi qualcuno deve editare quel file, aggiungere o togliere il key-id e poi reinizializzare lo store con questo comando:

$ pass init -p unit/ $(cat ~/.password-store/unit/.gpg-id

e pushare il tutto sul server.