Salta al contenuto principale

Il tuo archivio di password #2

Dagli una casa

Nella prima parte abbiamo creato una chiave GPG e un archivio di password, ma per ora vive su una macchina sola. Oggi gli diamo una casa su un server, così il telefono ci può arrivare e ne hai una copia se quella macchina muore. Se non hai proprio un computer, qui trovi anche la strada solo telefono.

Scegli una casa per il tuo archivio

Ti serve un server git da usare per sincronizzare. Visto che il tuo archivio è cifrato hai più libertà di quanto pensi, e queste sono tutte buone opzioni:

Provider Costo Gestito da Da sapere
Codeberg Gratis Associazione tedesca non profit I repository privati hanno dei limiti, leggi sotto
GitHub Gratis Microsoft Il più facile per cui trovare aiuto, repository privati inclusi
GitLab Gratis GitLab Inc. 10 GiB per progetto, molto più di quanto ti servirà mai
SourceHut Facoltativo, da 4 € al mese SourceHut Minimale, non serve JavaScript, solo SSH
un tuo server Quello che già paghi Tu Il più riservato, ma tenerlo in vita tocca a te

Un archivio è minuscolo, qualche KB per password, quindi i limiti di spazio non sono un problema da nessuna parte. Quello che stai scegliendo davvero è a chi ti va bene affidare i nomi dei tuoi file e la tua cronologia. Con un servizio in hosting ti fidi di un’azienda o di un’associazione, con un tuo server ti fidi di te stesso.

Se non sai cosa scegliere: GitHub o GitLab sono i più facili per iniziare, Codeberg è quello che sceglierei se contribuisci già al software libero, l’opzione un tuo server è quello che uso io, quando ti sentirai a tuo agio con tutto il resto.

Qualunque sia la scelta, ti servono due cose: una chiave SSH, che è il modo in cui il tuo computer dimostra chi è senza password, e un repository vuoto e privato. Partiamo dalla chiave, che è uguale per tutti:

bash
1
ssh-keygen -t ed25519

Premi Invio per accettare il nome del file, e dalle una passphrase se vuoi. Poi stampa la parte pubblica, che è quella da incollare sul sito del provider:

bash
1
cat ~/.ssh/id_ed25519.pub

Come per GPG, la metà pubblica non è un segreto. Il file senza .pub invece lo è, e non lascia mai il tuo computer.

GitHub

  1. Crea un account, poi vai su Settings, SSH and GPG keys, New SSH key e incolla la tua chiave.
  2. Vai su github.com/new, chiama il repository password-store e scegli Private. Non aggiungere README, licenza o .gitignore: il repository deve essere vuoto.
  3. Il tuo indirizzo è git@github.com:you/password-store.git.

GitLab

  1. Crea un account, poi nelle preferenze del tuo profilo apri SSH Keys e aggiungi la tua chiave.
  2. Vai su New project, scegli Create blank project, chiamalo password-store, imposta la visibilità su Private e togli la spunta all’opzione che crea un README.
  3. Il tuo indirizzo è git@gitlab.com:you/password-store.git.

Codeberg

Codeberg è un’associazione non profit per il software libero, e lo dice chiaramente: i repository privati sono pensati per chi contribuisce al software libero, con un limite di 100 MB, e i suoi termini permettono “really small & personal stuff”, cioè roba piccola e personale, ma non un cloud privato. Un archivio di password è piccolo e personale, ma se non contribuisci in nessun modo al software libero, per favore scegli un altro provider e lascia quelle risorse a chi sono destinate.

  1. Crea un account, poi vai su Settings, SSH / GPG keys e aggiungi la tua chiave.
  2. Vai su New repository, chiamalo password-store, spunta Make repository private e lascia tutto il resto senza spunta, così resta vuoto.
  3. Il tuo indirizzo è git@codeberg.org:you/password-store.git.

SourceHut

Non ho mai usato SourceHut per il mio archivio, quindi questo viene dalla loro documentazione. È un servizio piccolo, indipendente e molto essenziale. L’hosting git non richiede un account a pagamento finché il servizio è in alpha, ma è pagando che resta in vita.

  1. Registrati su meta.sr.ht e aggiungi la tua chiave su meta.sr.ht/keys.
  2. Non serve neanche creare il repository: viene creato al primo push, ed è privato di default.
  3. Il tuo indirizzo è git@git.sr.ht:~you/password-store.

un tuo server

Va bene qualsiasi macchina raggiungibile via SSH: una VPS, un NAS, un Raspberry Pi nello sgabuzzino. Lì ti servono solo git e un repository vuoto:

bash
1
git init --bare ~/password-store.git

Il tuo indirizzo è you@server.example.org:password-store.git, e se SSH non gira sulla porta 22 usa la forma lunga: ssh://you@server.example.org:2222/home/you/password-store.git.

Se vuoi anche un’interfaccia web, Forgejo è un’alternativa leggera a GitHub da ospitare in casa, ed è quello che fa girare Codeberg. Una volta installato, i passaggi sono gli stessi di Codeberg. Ricordati solo che un server tuo resta sicuro solo se lo tieni aggiornato.

Manda l’archivio sul server

Qui usa il tuo indirizzo:

bash
1
2
pass git remote add origin git@github.com:you/password-store.git
pass git push -u origin HEAD

La prima volta SSH ti mostra l’impronta del server e ti chiede se ti fidi. Scrivi yes. Per essere scrupoloso, confrontala prima con quella nella documentazione del provider.

Fatto, adesso il tuo archivio vive anche sul server. Se apri il repository nel browser vedrai example.org.gpg, e se lo apri non vedrai niente di utile. Bene così.

La strada solo telefono

Niente computer? Il telefono può fare tutto quello che abbiamo fatto finora, grazie a Termux. Installalo da F-Droid o dalle release su GitHub, non dal Play Store, e aprilo. Ti dico solo quello che cambia, le spiegazioni restano valide.

Per prima cosa aggiorna tutto, e non è facoltativo. Se lo salti, GPG si rifiuta di partire con libgcrypt is too old. Durante l’aggiornamento potrebbe chiederti cosa fare con alcuni file di configurazione: premi semplicemente Invio per tenere il valore predefinito.

bash
1
2
pkg upgrade
pkg install gnupg pass git openssh

Permetti a Termux di raggiungere la cartella Download, e tocca Consenti quando Android lo chiede:

bash
1
termux-setup-storage

Adesso è tutto come nella prima parte: di’ a git chi sei, crea la tua chiave e il tuo archivio, crea una chiave SSH e manda tutto sul server. Un paio di note:

  • GPG chiede la passphrase in una finestra di testo dentro il terminale. Scrivila, passa al campo Repeat con il tasto Tab (è nella riga di tasti extra sopra la tastiera), scrivila di nuovo, premi Tab per arrivare su OK e poi Invio.
  • Per copiare la tua chiave SSH pubblica sul sito del provider, esegui cat ~/.ssh/id_ed25519.pub, tieni premuto sul testo in Termux e selezionalo.

Poi esporta la chiave dove l’app la può trovare:

bash
1
gpg --armor --export-secret-keys you@example.org > ~/storage/downloads/private-key.asc
Il telefono ora ha la tua unica copia
Con questa strada la tua chiave vive solo sul telefono. Se il telefono muore o te lo rubano perdi tutte le password, anche se i file cifrati sono al sicuro sul server. Prima di mettere password vere nell’archivio, copia private-key.asc in un posto sicuro: va bene una chiavetta USB con un adattatore OTG. Non mandarla via email o su un cloud.

Prossima puntata

Adesso il tuo archivio è al sicuro su un server, e la parte noiosa è finita. Nella terza parte installiamo HardenedPass, lo colleghiamo al tuo archivio e vediamo come usarlo tutti i giorni.

Alla prossima 👋