= 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 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.