Synology – problem z gpg – gpg-agent – opis jak wykorzystywać gpg

Na synology zaczałem robić dodatkowe kopie, jednak aby było bezpieczniej chciałm uzyć szyfrowania GPG. Do tego potrzebne jest klucz GPG, jednak fajnie było by mieć klucz prywatny z hasłem. Normalnie na linux wykonuje gpg – –full-generate-key i odpowiadałem na pytania. Jednak wersja na synology nie działa od ręki dosataję error:

gpg: agent_genkey failed: No pinentry
Key generation failed: No pinentry

Można wykorzystać plik z konfiguracją ale bez hasła, np. key-config.txt:

%no-protection
Key-Type: RSA
Key-Length: 4096
Subkey-Type: RSA
Subkey-Length: 4096
Name-Real: Twoje Imię
Name-Email: [email protected]
Expire-Date: 0
%commit

i wykonać:

gpg –batch –generate-key key-config.txt

Jednak przechowywani kluczy bez hasła nie do konća jest bezpieczne, można to rozwiązać za dodając do pliku:

%no-protection
Key-Type: RSA
Key-Length: 4096
Subkey-Type: RSA
Subkey-Length: 4096
Name-Real: Twoje Imię
Name-Email: [email protected]
Expire-Date: 0
Passphrase: moje_super_haslo
%commit

Można także dodać do komendy:

export GPG_PASSPHRASE=„moje_super_haslo”
gpg –batch –passphrase $GPG_PASSPHRASE –gen-key key-config.txt

unset GPG_PASSPHRASE

inne rozwiązanie, aby wykonać polecenie:

gpg –pinentry-mode loopback –full-generate-key

Dzięki temu w konsoli zapyta sie a nie bedzie próbował odpalić pinentry. Można dodać do pliku konfiguracyjnego na stałe:

Dla użytkownika:

~/.gnupg/gpg.conf
lub dla całego systemu:
/etc/gnupg/gpg.conf


pinentry-mode loopback
use-agent

i od tego momentu wystarczy wykonać:

gpg –full-generate-key

Operacje na kluczach:

1) wyświetlenie listy kluczy:

gpg –list-keys

2) export/kopia klucza prywatnego – należy go pilnować zwłaszcza jak nie ma hasła, klucz prywatny służy do rozszyfrowania, weryfikacji podpisu itp:
a) wersja binarna

gpg –pinentry-mode loopback –export-secret-keys –export-options export-backup -o klucz_pelny_backup.gpg FINGER_PRINT_KLUCZA

b) wersja tekstowa

gpg –pinentry-mode loopback –export-secret-keys –export-options export-backup –armor -o klucz_pelny_backup.gpg FINGER_PRINT_KLUCZA

3) export klucza publicznego, służy do szyfrowani, podpisywania itp:
a) wersja binarna

gpg –pinentry-mode loopback –export –export-options export-backup -o klucz_pelny_backup.gpg FINGER_PRINT_KLUCZA

b) wersja tekstowa

gpg –pinentry-mode loopback –export –export-options export-backup –armor -o klucz_pelny_backup.gpg FINGER_PRINT_KLUCZA

Wiekszość opisów jest bez opcji –export-options export-backup jest ona potrzebna aby wszystkie metadane.

4) Usuwanie klucza prywatnego, tutaj nie zadziała –pinentry-mode loopback wiec jak jest problem z pinentry dlatego należy wykonać, TRZEBA NA TO UWAŻAĆ BO NIE ZAPYTA O POTWIERDZENIE CZY USUNAĆ:

gpg –batch –yes –delete-secret-keys FINGER_PRINT_KLUCZA

jednak jak działa pinentry ( wersja nie zalecana) to wytarczy

gpg –delete-secret-keys FINGER_PRINT_KLUCZA

5) Usuniecie klucza publicznego, można to wykonać jak nie ma już klucza prywatnego:

gpg –batch –yes –delete-keys FINGER_PRINT_KLUCZA

lub

gpg –delete-keys FINGER_PRINT_KLUCZA

6) Importowanie klucza prywantego/publicznego:

gpg –pinentry-mode loopback –import klucz_pelny_backup.gpg