Da un po' di tempo a questa parte ho iniziato ad usare KeepassXC per memorizzare tutte le password che uso.

Molto fico, ma visto che il database contiene dati molto sensibili ho deciso di non usare cloud di terzi; nei primi tempi ho sincronizzato due pc e un cellulare copiando le versioni nuove a mano, ma era una pigna da fare,
E dato che avevo una Odroid C2 nel cassetto con già su SSH ho deciso di sfruttarla come server per mantenere sempre sincronizzate al bisogno le mie care password.

Potevo usare Nextcloud o simili, ma non avevo cazzi di imparare a metter su un intero stack LAMP solo per sincronizzare un file :asd:

Di conseguenza, questo progetto ho deciso di usare Unison, è un programma di sincronizzazione bi-direzionale che tiene sempre aggiornate due cartelle locali o una cartella locale e una remota attraverso SSH, in maniera analoga a Dropbox e simili.

PS: Ovviamente, non vado a coprire l'installazione/configurazione di un server SSH, ma sapete già a chi rivolgervi :lkib:

Installazione e prima sincronizzazione
Installiamo Unison, sia sul client che sul server. Per funzionare, è necessario che la stessa versione del programma sia installata su entrambi gli end.

per sperimentare, creeremo una cartella di prova su entrambi gli end, ma solo in quella locale creeremo un file di prova per la sincronizzazione

Creiamo un file ~/.unison/prova.prf e lo compiliamo secondo necessità:

# Profilo di esempio, per tutti i parametri vedere: http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html
# Le due cartelle da mantenere sincronizzate
root = /cartella/di/origine
root = ssh://utente@server.remoto//cartella/di/destinazione

# Parametri di ssh (ad esempio -p per la porta), de-commentare se necessario
#sshargs = -p 99999

#Impedisce la sincronizzazione dei file nascosti
ignore = Name {.*}

# Parametri per impostare la sincronizzazione continua a mo' di Dropbox
auto = true
repeat = watch
prefer = newer
times = true

# Parametri per ridurre a zero l'interazione dell'utente
batch = true
confirmmerge = false
confirmbigdel = false

#Percorso di salvataggio del file di log
logfile = /tmp/unison.log


Una volta salvato il file, diamo
unison prova
e tutto dovrebbe funzionare a dovere:

Unison 2.51.2 (ocaml 4.07.1): Contacting server...
Connected [//bahamut//home/miky/Prov-prova -> //maduin//home/miky/Prov-prova]
Looking for changes
  Waiting for changes from server
Reconciling changes
file     ---->            scemochilegge.txt 
Propagating updates
UNISON 2.51.2 (OCAML 4.07.1) started propagating changes at 14:18:45.72 on 24 Apr 2019
[BGN] Copying scemochilegge.txt from /home/miky/Prov-prova to //maduin//home/miky/Prov-prova
[END] Copying scemochilegge.txt
UNISON 2.51.2 (OCAML 4.07.1) finished propagating changes at 14:18:46.18 on 24 Apr 2019
Saving synchronizer state
Synchronization complete at 14:18:46  (1 item transferred, 0 skipped, 0 failed)
Looking for changes
  Waiting for changes from server
Reconciling changes
Nothing to do: replicas have not changed since last sync.

Se tutto va per il verso giusto, il programma resterà in esecuzione in attesa di sincronizzare nuovi file appena rileverà delle modifiche.

Configurare l'avvio persistente
Unison è progettato per terminare in caso di errore (es. in caso di interruzione/assenza della rete), quindi metterlo in auto-start all'avvio del DE non è una soluzione molto efficace.
Invece è raccomandato usare systemd, che è in grado di riavviare l'esecuzione di Unison in caso di problemi.
Creiamo il file ~/.config/systemd/user/unison.service:

[Unit]
Description=Unison

[Service]
Environment="PATH=/usr/bin"
ExecStart=/usr/bin/unison <profilo>
#Ricordatevi di modifcare "<profilo>" con il nome del vostro file prf
Restart=always
RestartSec=10

[Install]
WantedBy=default.target

Proviamo ad avviare l'unità con: (NON eseguite questi comandi come root/sudo!):
systemctl --user start unison.service
e se tutto funziona come si deve, abilitiamola ad ogni nostro login:
systemctl --user enable unison.service

Buona sincronizzazione a tutti :asdrule:

E per sincronizzare le password di keepass con il cellulare?
Keepass2Android. Supporta un sacco di Cloud proprietari e protocolli aperti (SSH compreso) ed è in grado di sincronizzare autonomamente le modifiche con il server, che poi grazie ad Unison le ritroveremo puntualmente sul computer.
PS: se avete configurato SSH in modo tale da permettere l'autenticazione solo via chiave pubblica dovete scaricare la versione beta dell'app dato che la stabile ne permette solo l'accesso tramite password.
Il bere trionfa sempre sul male

Post riservato per il prossimo argomento: configurare Unison su Windows
Il bere trionfa sempre sul male

Numero 👍 pollice
Ritengo di avere diritto alle royalties sull'acronimo BUBS :lki:
Sono scemo di mio :verovero: Tutto a posto | I don't have a problem with caffeine. I have a problem without caffeine.
Se i nostri cervelli fossero abbastanza semplici da poter essere capiti, allora saremmo così semplici che non capiremmo - Ian Stewart
Fotografia ad mentula

Anche io uso keepass2
persino la mia azienda lo fa installare come programma scelto per le pass. quindi ce l ho su linux e in ufficio su windows.
su cellulare no. li ho una email a parte, e non ho nessuna app per gestire che so, banca, postpay ecc. nulla di queste cose.
Firma.

Io uso keepass, ma trovo un pelo scomodi alcuni aspetti, tipo il fatto che sul desktop debba esserci il programma aperto per fare andare il cosino di Chrome
Ritengo di avere diritto alle royalties sull'acronimo BUBS :lki:
Sono scemo di mio :verovero: Tutto a posto | I don't have a problem with caffeine. I have a problem without caffeine.
Se i nostri cervelli fossero abbastanza semplici da poter essere capiti, allora saremmo così semplici che non capiremmo - Ian Stewart
Fotografia ad mentula

Io non uso l'estensione ma l'autocompletamento integrato nel programma, è configurabile per ogni sito ed è una figata  :asdrule:
Il bere trionfa sempre sul male