Talvolta mi capita di voler trasferire la mia chiave privata su un altro dispositivo in mio possesso. Ed ogni volta mi dimentico come fare.

Quindi proviamo a scriverlo nero su bianco, in modo che in futuro io possa ritrovare questa breve guida ed eseguire velocemente un lavoro che non dovrebbe richiedere più di 2 minuti.

Nel far ciò perchè non pubblicare questo scritto, così da permettere a chiunque di eseguire questi semplici passi? Iniziamo subito!

Iniziamo con le basi su sistemi Linux e Unix-like.

Possiamo elencare le chiavi disponibili con:

gpg --list-keys

Per esportare una chiave pubblica possiamo usare:

gpg --export Nome\ Cognome > pubblica.gpg

Per esportare una chiave privata possiamo usare:

gpg --export-secret-keys Nome\ Cognome > privata.gpg

Con questo comando verrà richiesta la password della chiave privata, ma non preoccupatevi: la chiave verrà comunque salvata criptata con la stessa chiave.

Per importare una chiave pubblica o privata, basta il comando:

gpg --import pubblica.gpg
gpg --import privata.gpg

Potremmo salvare l’output dei comandi precedenti su un file, trasferire il file sul dispositivo remoto e poi importare il file. Questa pratica funziona perfettamente, ma come facciamo a trasferire il file?

Se possiamo usare SSH, possiamo fare tutto insieme:

gpg --export Nome\ Cognome | ssh [email protected] gpg --import --batch --yes
gpg --export-secret-keys Nome\ Cognome | ssh [email protected] gpg --import --batch --yes
gpg --export-ownertrust | ssh [email protected] gpg --import-ownertrust

I primi due comandi sono la combinazione dell’esportazione delle chiavi, della connessione SSH e trasferimento via pipe al processo di importazione delle chiavi. I flag --batch e --yes sono necessari per evitare prompt che non funzionerebbero via SSH. Attenzione a dare il comando giusto!

L’ultimo comando esporta il database della fiducia di gpg e lo importa sull’host remoto.

Per esportare la chiave privata con OpenKeychain su Android è necessario eseguire un backup della chiave, trascrivere la chiave di backup su carta o fare uno screenshot e copiarla con OCR, trasferire il file e poi importarlo con gpg, inserendo la chiave di backup. Una noia mortale! Molto meglio avere SSH a disposizione!