Avvia knoppix (prima in rete, dopo disconnesso):
# apt-get update
# apt-get install pcscd cryptsetup gpgsm
se vogliamo usare anche un filesystem crittato per la copia su file della chiave:
# apt-get install cryptsetup
# modprobe dm_mod
i.e. monta disco crittato
# DIM = blockdev --getsize /dev/sdc1
# crypsetup -y -b $DIM create usb /dev/sdc1
# mount /dev/mapper/usb /mnt
Crea chiave:
$ gpg --gen-key
scegli chiave RSA 1024 bit. Adesso genera subkey:
$ gpg --edit-key <key ID>
dal prompt selezione addkey e seleziona (6) RSA (encrypt only).
Adesso per generare la subkey authetication:
$ gpg --expert --edit-key <key ID>
ancora addkey e seleziona (7) RSA (set your own capabilities) ed a
seguire:
Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Sign Encrypt
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? s
Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Encrypt
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? e
Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions:
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? a
Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Authenticate
(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished
Your selection? q
quit per uscire.
Copia su card delle chiavi:
$ gpg --edit-key <key ID>
Command> toggle
Command> keytocard
seleziona: (1) Signature key
Command> key 1
Command> keytocard
seleziona: (2) Encryption key
Command> save
ed ancora:
$ gpg --edit-key <key ID>
Command> toggle
Command> key 2
seleziona: (2) Authentication key
Command> save
salva su filesystem crittato la dir .gnupg da /home/knoppix
Uso della card:
Installare pinentry-gtk e pinentry-qt. Edit ~/.gnupg/gpg.conf aggiungendo
use agent. Dalla console digitare:
eval $(gpg-agent --daemon --enable-ssh-support) : avvia agente gpg
a questo punto con ssh-add -L si visualizza la chiave pubblica da appendere
al file authorized_keys. E quindi al primo ssh verso la macchina si digita il
PIN.
Per usare poi le chiavi della card per crittare e decrittare e' necessario
copiarsi il pubring creato durante la generazione della chiave (vedi
preparacard.txt)
esportare le vecchie chiavi:
$ gpg --export > oldkeys
copiare il pubring di cui sopra e reimportare le chiavi:
$ gpg --import < oldkeys
script utili. In bash_profile:
come promemoria ricordarsi che questa script potrebbe creare problemi
al forward dell'agent durante accesso da remoto.
if [ -f "${HOME}/.gpg-agent-info" ]; then
. "${HOME}/.gpg-agent-info"
export GPG_AGENT_INFO
export SSH_AUTH_SOCK
export SSH_AGENT_PID
else
eval $(gpg-agent --daemon --enable-ssh-support --write-env-file "${HOME}/.gpg-agent-info")
fi
dunque meglio usare:
if [ ! -n "$SSH_CONNECTION" ]; then
if [ -f "${HOME}/.gpg-agent-info" ]; then
. "${HOME}/.gpg-agent-info"
export GPG_AGENT_INFO
export SSH_AUTH_SOCK
export SSH_AGENT_PID
else
eval $(gpg-agent --daemon --enable-ssh-support --write-env-file "${HOME}/.gpg-agent-info")
fi
fi
agent-test in bg per rimuovere le identita':
#!/bin/bash
export TEST="The screensaver is active"
while [ 0 -lt 10 ]; do
export SCREENLOCK=$(gnome-screensaver-command -q | head -n 1)
if [ "$SCREENLOCK" = "$TEST" ]; then
if [ -f "${HOME}/.gpg-agent-info" ]; then
. "${HOME}/.gpg-agent-info"
export SSH_AGENT_PID
kill -1 $SSH_AGENT_PID
killall scdaemon
fi
fi
sleep 10
done
potresti dover rimuovere l'openct:
ububtu bugs