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 pubblica, 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
Le password che creerete saranno crittate con la o le chiavi pubbliche presenti nel file .gpg-id
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)
le password possono essere messe anche in sottocartelle, ad esempio potete creare tutte le pwd delle vostre mailbox nella sottocartella posta, in modo da avere posta/riseup, posta/autistici, posta/disroot etc. ogni sottocartella puo' contenere un file .gpg-id diverso, e le password in quella cartella saranno crittate con le chiavi presenti in quel .gpg-id (se una cartella non contiene un .gpg-id verra' usato quello della cartella superiore).
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.
NOTA IMPORTANTE
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.).
Per verificare che avete tutte le chiavi c'e' uno script gpg-check-keys.py nel repository, per utilizzarlo prima installate il modulo python-gnupg:
$ pip3 install python-gnupg
e poi lanciatelo
$ ./gpg-check-keys.py
se dovete mettere il trust a qualche chiave basta firmarla localmente (ovviamente solo se siete certi che sia quella dell'uid riportato, da verificare col fingerprint):
$ gpg --lsign-key KEYID
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.