#format wiki #LANGUAGE it <
> <> <> = Introduzione = Questa guida descrive l'installazione, la configurazione e l'utilizzo di '''!QtPass''', un'interfaccia grafica (GUI) basata su Qt per `pass`, il gestore di password standard di Unix.<
>Utilizza il sistema di crittografia [[Sicurezza/GnuPg|GnuPG]] (GPG) per proteggere i dati e può sincronizzarsi tramite [[Programmazione/Git|Git]]. La filosofia del software si basa sulla semplicità e sull'uso di file di testo cifrati organizzati in una struttura a cartelle. = Installazione = {{{#!wiki note '''!QtPass''' è incluso nei repository ufficiali di Ubuntu. }}} == Da repository == [[AmministrazioneSistema/InstallareProgrammi|Installare]] i pacchetti [[apt://qtpass|qtpass]], [[apt://pass|pass]] e [[apt://gnupg2|gnupg2]]. {{{#!wiki tip Per la sincronizzazione del database delle password in un server o servizio web, installare [[Programmazione/Git|Git]]. }}} = Prequisiti iniziali = Prima di procedere per crittografare e decrittografare le password, è necessario: == Generare chiavi Gpg == [[Sicurezza/GnuPg#Generare_una_chiave|Generare]] una coppia di chiavi GPG (pubblica e privata), digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ gpg --full-generate-key }}} Al termine della procedura, è necessario annotare l'ID della chiave generata (un codice alfanumerico di 8 o 16 caratteri). {{{#!wiki tip Si consiglia di selezionare l'algoritmo '''(1) RSA e RSA''' (opzione predefinita) e una lunghezza di almeno 3072 bit. }}} {{{#!wiki important È fondamentale conservare in sicurezza la passphrase della chiave GPG, poiché lo smarrimento comporterebbe l'impossibilità di accedere alle password. }}} == Inizializzazione database delle password == Inizializzare il database delle password, digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ pass init "id_della_chiave_gpg" }}} Sostituire `"id_della_chiave_gpg"` con l'identificativo creato nel [[#Generare_chiavi_Gpg|passaggio precedente]]. {{{#!wiki important '''!QtPass''' ignora i file che non seguono la convenzione dell'estensione `.gpg` nella cartella. }}} = Avvio = [[AmbienteGrafico/AvviareProgrammi|Avviare]] '''!QtPass'''. Al primo avvio, l'applicazione cercherà automaticamente i percorsi degli eseguibili e della cartella delle password situata in `~/.password-store`.<
>Se ciò non accade, è possibile specificare il percorso manuale nelle [[#Configurazione|impostazioni]] '''Programmi''' del programma. == Avvio Solo Tray == All'interno di '''!QtPass''', è necessario abilitare la gestione della tray icon affinché l'applicazione rimanga attiva in background: 0. Accedere alla scheda menu '''Impostazioni'''. 0. Individuare e selezionare le seguenti opzioni: * '''Usa l'icona sulla barra delle applicazioni''' (Tray icon): abilita la visualizzazione dell'icona accanto all'orologio di sistema. * '''Avvia minimizzato''': avvia l'app direttamente come icona. * '''Nascondi alla chiusura''' e '''Sempre visibile''': permette all'applicazione di continuare l'esecuzione nel vassoio di sistema invece di chiudersi completamente quando viene premuta la "X" della finestra. === Universale (XDG Autostart) === {{{#!wiki note Questo metodo funziona su tutte le distribuzioni derivate poiché sfruttano lo standard XDG. }}} Consultare la [[AmministrazioneSistema/AvvioAutomatico|seguente pagina]] 0. Compilare i campi: * '''Nome''': ''`QtPass`'' * '''Comando''': ''`qtpass --minimized`'' * '''Ritardo all'avvio''': ''`5 secondi`'' (opzionale, utile per garantire che l'area di notifica sia già caricata). 0. Cliccare su '''Aggiungi'''. = Configurazione = Accedendo alla sezione "Configurazione", è possibile personalizzare il comportamento del software: * '''Impostazioni''': nascondere i caratteri durante la digitazione, la lunghezza delle password durante la generazione automatica, attivare/disattivare la generazione automatica delle password. * '''Programmi''': impostare il programma e i percorsi di `gpg`, `pass` e `git`. {{{#!wiki tip Si consiglia di verificare che i percorsi verso gli eseguibili gpg e pass siano corretti (solitamente `/usr/bin/gpg` e `/usr/bin/pass`). }}} * '''Profili''': Impostare il profilo utente. * '''Modelli''': modelli preimpostati. = Utilizzo = == Creazione di una nuova password == 0. Cliccare sul pulsante "Aggiungi password". 0. Inserire il nome del servizio a cui associare la password (es. `Email/Gmail` o `Social/GitHub`). 0. Digitare la password o cliccare sul pulsante "Genera" per generare una password sicura tramite il generatore integrato. 0. Cliccare su "OK". Salvare la voce. Il file verrà creato come `~/.password-store/Email/Gmail.gpg`. == Recupero di una password == Dall'elenco principale, selezionando una voce, sono disponibili diverse opzioni: * '''Copia Password''': copia la password negli appunti per un tempo limitato. * '''Mostra/Nascondi''': visualizza la password all'interno dell'interfaccia. * '''Copia Utente''': copia il nome utente associato. Il backup dei dati consiste in due elementi fondamentali: 0. La cartella nascosta `~/.password-store`. 0. La chiave privata GPG, esportabile con:{{{ gpg --export-secret-keys --armor > private.key }}} {{{#!wiki important Il possesso della cartella senza la chiave GPG (o viceversa) non permette il recupero delle password. }}} == Sincronizzazione Git == Se '''!QtPass''' deve essere condiviso tra più dispositivi: 0. Inizializzare un [[Programmazione/Git|repository git]] nella cartella del password store. 0. Nelle impostazioni di '''!QtPass''', abilitare l'opzione '''Usa git'''. 0. Configurare i comandi di '''push''' e '''pull''' automatici per mantenere i dati aggiornati su un server remoto (es. un server privato o piattaforme come [[Programmazione/Git|GitLab/GitHub]]). {{{#!wiki important Questa sincronizzazione è una delle funzioni più avanzate di '''!QtPass''', ma può presentare criticità legate all'autenticazione, alla configurazione dei repository remoti o a conflitti tra versioni dei file. }}} {{{#!wiki note Consultare [[#Fallimento_dell.27autenticazione_.28SSH.2FHTTPS.29|questo paragrafo]] per risolvere i problemi più frequenti e le relative procedure. }}} == Integrazione con il Browser == Sebbene '''!QtPass''' sia un'applicazione standalone, è possibile integrare il database delle password con i [[InternetRete/Navigazione#Browser_per_navigare|browser]] (Firefox, Chrome/Chromium) utilizzando estensioni come `passff` o `browserpass`. Queste estensioni comunicano con il backend pass e permettono l'inserimento automatico delle credenziali nei moduli di login. = Risoluzione problemi = == la Tray Icon non è visualizzata == Nei sistemi [[AmbienteGrafico/Gnome|GNOME]] l'icona nell'area di notifica non è visualizzata, è necessaria l'[[AmbienteGrafico/Gnome/Estensioni|estensione]] `gnome-shell-extension-appindicator`. == "GPG Decryption failed: No secret key" == Un errore comune durante l'utilizzo di '''!QtPass''' è il fallimento della decrittazione dei dati perché la chiave GPG utilizzata per inizializzare il password store non è presente nel portachiavi locale o è stata eliminata. 0. [[Sicurezza/GnuPg#Visualizzare_la_lista_delle_chiavi_GnuPG|Verificare le chiavi segrete]] presenti nel sistema. 0. Assicurarsi che l'ID della chiave corrisponda a quello impostato in '''!QtPass'''. {{{#!wiki note L'identificativo da utilizzare nei file di configurazione si trova sempre nella riga che inizia con `sec`, immediatamente dopo il carattere `/`. * Se l'ID visualizzato è di 8 caratteri: formato Short. * Se l'ID visualizzato è di 16 caratteri: formato Long (scelta raccomandata per evitare collisioni). }}} 0. Se la chiave è corretta ma l'errore persiste, tentare una decrittazione manuale via terminale per isolare il problema:{{{ pass NomeServizio/NomePassword }}} Se richiede la password e la mostra correttamente, il problema risiede nella configurazione del percorso GPG all'interno di '''!QtPass'''. == Inappropriate ioctl for device == Questo errore si verifica quando [[Sicurezza/GnuPg|GPG]] tenta di chiedere la passphrase della chiave privata, ma non riesce a far apparire la finestra di inserimento (pinentry).<
><
>Il sistema sta tentando di utilizzare un'interfaccia di inserimento testuale in un ambiente grafico, oppure il componente pinentry non è configurato correttamente. 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] una versione grafica di `pinentry` compatibile con l'ambiente desktop: * [[AmbienteGrafico/Kde|KDE]] / [[AmbienteGrafico/Lxqt|LXQt]]:{{{ sudo apt install pinentry-qt }}} * [[AmbienteGrafico/Gnome|GNOME]]:{{{ sudo apt install pinentry-gnome3 }}} 0. Configurare GPG per utilizzare il programma corretto modificando il file di configurazione dell'agente, digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ nano ~/.gnupg/gpg-agent.conf }}} Aggiungere o modificare la riga (esempio per GNOME):{{{ pinentry-program /usr/bin/pinentry-gnome3 }}} 0. Riavviare l'agente GPG:{{{ gpgconf --kill gpg-agent }}} == GPG: decryption failed: secret key not available == Se i file delle password sono stati copiati da un altro computer o da un backup.<
>Sono stati trasferiti i file crittografati (.gpg) ma non è stata importata la chiave privata GPG associata. 0. Esportare la chiave dal computer di origine:{{{ gpg --export-secret-keys ID_CHIAVE > chiave_privata.asc }}} 0. Importare la chiave nel nuovo sistema:{{{ gpg --import chiave_privata.asc }}} 0. Impostare la fiducia della chiave (Trust) affinché sia utilizzabile:{{{ gpg --edit-key ID_CHIAVE }}} Digitare "trust", selezionare "5" (assoluta), confermare con "quit". == gpg: decryption failed: Bad passphrase == L'errore appare quando la password della chiave GPG inserita è errata. Errore di digitazione o mancata corrispondenza tra tastiera impostata e caratteri digitati. 0. Controllare il [[Hardware/Periferiche/Tastiere|layout della tastiera]] (es. IT vs US). 0. Provare a digitare la password in un editor di testo in chiaro per verificarne la correttezza, quindi incollarla nel prompt di GPG. == Schermata vuota o errore di percorso eseguibile == '''!QtPass''' non mostra alcun errore specifico ma non decritta nulla. I percorsi degli eseguibili `gpg` o `pass` nelle impostazioni di '''!QtPass''' sono errati. 0. Aprire le [[#Configurazione|Impostazioni]] di '''!QtPass'''. 0. Assicurarsi che il campo '''GPG Executable''' contenga `/usr/bin/gpg` e il campo '''pass Executable''' contenga `/usr/bin/pass`. 0. Cliccare sul pulsante '''Autodetect''' per forzare il software a cercare i percorsi corretti nel sistema. == Fallimento dell'autenticazione (SSH/HTTPS) == Questo è il problema più comune quando si tenta di eseguire operazioni di Push o Pull. L'operazione '''Git''' fallisce con messaggi del tipo `Permission denied (publickey)` o `Authentication failed`. '''!QtPass''' non ha accesso alle credenziali necessarie per comunicare con il server remoto (!GitHub, !GitLab, server privato). 0. '''Utilizzo di SSH''': È la modalità consigliata. Verificare che la chiave pubblica SSH sia stata aggiunta al profilo del server remoto. 0. '''Configurazione dell'agente SSH''': Assicurarsi che la chiave privata sia caricata nell'agente all'avvio della sessione, digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ ssh-add ~/.ssh/id_rsa }}} 0. '''Evitare HTTPS''': L'uso di HTTPS spesso richiede l'inserimento manuale di nome utente e password (o Personal Access Token), operazione che può fallire se l'interfaccia grafica di '''!QtPass''' non riesce a mostrare il prompt di inserimento. È preferibile convertire il repository all'uso di SSH:{{{ cd ~/.password-store git remote set-url origin git@github.com:utente/repo.git }}} == Repository remoto non configurato == '''!QtPass''' potrebbe non eseguire alcuna operazione di sincronizzazione se il repository locale non è collegato a uno remoto. I pulsanti Git sono disabilitati o non producono alcun effetto. Il password store è stato inizializzato localmente ma non è stato aggiunto un "remote". 0. Accedere alla cartella del database, digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ cd ~/.password-store }}} 0. Aggiungere il server remoto manualmente:{{{ git remote add origin indirizzo_del_server_git }}} 0. Effettuare il primo push per stabilire il tracciamento del ramo (branch): git push -u origin master }}} == Percorso dell'eseguibile Git non rilevato == Se '''!QtPass''' non trova l'eseguibile di Git, le funzioni di sincronizzazione risulteranno inattive. Errore nelle impostazioni o impossibilità di selezionare opzioni Git. 0. Aprire le [[#Configurazzione|Impostazioni]] di '''!QtPass'''. 0. Nella sezione relativa ai programmi, verificare che il campo '''Git Executable''' punti a `/usr/bin/git`. 0. Utilizzare il pulsante '''Autodetect''' per correggere eventuali percorsi errati. == Conflitti di unione (Merge Conflicts) == Si verificano quando la stessa password viene modificata contemporaneamente su due dispositivi diversi. Messaggio di errore durante il Pull: Automatic merge failed; fix conflicts and then commit the result. Git non è in grado di decidere quale versione del file crittografato mantenere. Poiché i file sono crittografati, non è possibile risolvere i conflitti riga per riga come in un normale file di testo. 0. Aprire il [[AmministrazioneSistema/Terminale|terminale]] nella cartella del database, digitando il seguente comando:{{{ cd ~/.password-store }}} 0. Decidere quale versione mantenere (quella locale o quella remota): * Per mantenere la versione locale:{{{ git checkout --ours percorso/del/file.gpg }}} * Per mantenere la versione del server:{{{ git checkout --theirs percorso/del/file.gpg }}} Concludere l'operazione:{{{ git add . git commit -m "Risoluzione conflitto manuale" }}} == Mancata sincronizzazione automatica == In alcuni casi, '''!QtPass''' non esegue il push automatico dopo l'aggiunta di una password. Le password salvate rimangono solo sul computer locale. 0. Accedere alle [[#Configurazione|Impostazioni]] di '''!QtPass'''. 0. Verificare che l'opzione Auto-push and auto-pull (o voci simili a seconda della versione) sia attivata. 0. Assicurarsi che il repository sia configurato correttamente per evitare richieste di password GPG o SSH durante il processo automatico, poiché queste bloccano l'esecuzione in background. == GPG signature == Alcune configurazioni di Git richiedono che ogni commit sia firmato digitalmente. L'operazione Git fallisce perché '''!QtPass''' non riesce a firmare il commit. Consultare [[Programmazione/Git/Commit#GPG_signature|questa pagina]]. ##Assicurarsi che le chiavi SSH siano correttamente configurate nel sistema se si utilizza un server remoto come !GitHub o !GitLab. ##= Ulteriori risorse = ---- CategoryHomepage CategoryNuoviDocumenti