Jeśli chcemy wysyłać i odczytywać wiadomości e-mail zabezpieczone kluczem pgp, pierwsze co musimy zrobić, to sprawdzić czy mamy zainstalowany pakiet gnupg, jeśli go nie posiadamy, wpisujemy w konsoli:
Kod:
w przypadku debiana: apt-get install gnupg
w przypadku fedory: yum install gnupg
w przypadku mandrivy: urpmi gnupg
Gdy posiadamy już niezbędne narzędzie, przechodzimy do tworzenia pary kluczy pgp. Wykonujemy kolejno (wszystkie poniższe czynności wykonujemy już jako user):
Teraz musimy dokonać kilku wyborów:
Proszę wybrać rodzaj klucza:
(1) RSA i RSA (domyślne)
(2) DSA i ElGamala
(3) DSA (tylko do podpisywania)
(4) RSA (tylko do podpisywania)
Twój wybór?
Załóżmy, że interesuje nas klucz DSA:
wpisujemy: 2 i zatwierdzamy;
Klucze DSA mogą mieć długość od 1024 do 3072 bitów.
Jakiej długości klucz wygenerować? (2048)
Chcemy mieć 1024 bitowy klucz, więc wklepujemy: 1024 i zatwierdzamy;
Klucze DSA mogą mieć długość od 1024 do 3072 bitów.
Jakiej długości klucz wygenerować? (2048) 1024
Żądana długość klucza to 1024 bitów.
Okres ważności klucza.
0 = klucz nie ma określonego terminu ważności
<n> = termin ważności klucza upływa za n dni
<n>w = termin ważności klucza upływa za n tygodni
<n>m = termin ważności klucza upływa za n miesięcy
<n>y = termin ważności klucza upływa za n lat
jeśli nasz klucz ma być ważny przez 12 miesięcy (po tym okresie możemy go odświeżyć ale ta informacja nie jest teraz niezbędna, ma to być z założenia prosty tutorial "krok po kroku"), powinniśmy wpisać:
12m
Zostaniemy jeszcze zapytani, czy wszystko się zgadza. Jeżeli wszystko jest w porządku, zatwierdzamy i możemy przejść do opisania naszego klucza. Dane które tutaj podamy nie muszą być prawdziwe ale
powinny pozwolić innym poprawnie zweryfikować naszą tożsamość. Zostaniemy poproszeni kolejno o:
imię i nazwisko, adres e-mail (podajemy prawdziwy) oraz komentarz (można zostawić puste pole).
Zatwierdzamy poprawność wprowadzonych danych i przechodzimy do nadania hasła, którego będziemy używać do odszyfrowywania wiadomości. Ważne by nasze hasło było wystarczająco długie i tak samo skomplikowane(najlepiej niesłownikowe)!
Jeżeli zobaczymy mniej więcej taki komunikat:
gpg: /var/home/gnupg/.gnupg/trustdb.gpg: baza zaufania utworzona
klucz publiczny i prywatny (tajny) zostały utworzone i podpisane.
klucz został oznaczony jako obdarzony absolutnym zaufaniem.
pub 1472D/780AE60N 2011-08-07 Imie nazwisko<adres@email.pl>
Odcisk klucza = 60T4 ACE1 0F6B GE4N 67Y0 9E85 3588 3459 330K T0F2
sub 1024g/624564B4 2011-08-07
to właśnie udało nam się poprawnie wygenerować parę kluczy 
Znajdują się one w katalogu domowym:
Kod:
ls /home/user/.gnupg
gpg.conf pubring.gpg random_seed secring.gpg trustdb.gpg
plik pubring.gpg zawiera nasz klucz publiczny,
natomiast secring.gpg, to klucz prywatny nie powinien nigdy zostać komukolwiek udostępniony, to nasz tajny klucz szyfrujący/deszyfrujący.
Teraz aby ułatwić życie sobie i innym osobom, które będą wymieniały z nami zaszyfrowane wiadomości, eksportujemy nasz klucz publiczny(!) na serwer kluczy. Klucz raz wyeksportowany na serwer nigdy nie zostanie stamtąd usunięty, jeżeli zajdzie podejrzenie, że klucz nie jest już dłużej zaufany, możemy go unieważnić ale jego ślad zawsze pozostanie na serwerze.
Dla pewności sprawdźmy ID naszego klucza, polecenie wyświetli listę posiadanych przez nas kluczy:
Kod:
gpg --list-keys
pub 1472D/780AE60N 2011-08-07 Imie nazwisko<adres@email.pl>
sub 1024g/624564B4 2011-08-07
ID naszego klucza to: 780AE60N
(W podobny sposób możemy sprawdzić odcisk klucza, który jest przydatny do weryfikacji jego homogeniczności: gpg --fingerprint oraz wiele innych)
No dobrze, ale przejdźmy do wspomnianego eksportu klucza:
Kod:
gpg --keyserver "hkp://subkeys.pgp.net" --send-key 780AE60N
(gdzie "hkp://subkeys.pgp.net" to przykładowy serwer kluczy a
780AE60N to ID eksportowanego klucza).
Oczywiście nie trzeba zamieszczać klucza na serwerze, można przesłać go w wiadomości e-mail, do tego celu służy polecenie:
gpg --armour --output /plik/wyjściowy --export adres@email.pl
Potem należy wyekstrahować zaszyfrowany plik, wykonując cat /plik/wyjściowy.gpg
Polecenie zwraca zaszyfrowany klucz w postaci:
Kod:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.6 (GNU/Linux)
mQGiBEGaNQMRBADjQnGz4XaFgnyw9myEDRzDT9yZNdbkVk6wTF1e0YUgikmLAV+V
yP1PLnLmzNaSt8omssoBp5S5ysTY6FMqFGtytCQek4YZyxbO/tP4SUUnM8w8rvgN
1K54+xSHF4RyINagEZbjTBPw5A8rTZXReVJ5Wc4O+uV58XwPETXMPXCCTwCgzF9I
pcUa6A7G/tj4BebQms5sZbMD/AhcskgaZW+IR/wKrI9EH04Jt+phrONfx1uXr8Dw
HVftalxLYQBANC3RBfxqRxrn5+vRk6Kp9X18wO9Iz342/mMlxam4d+m7vnrNK8wc
qeIKv01ICGbtNKh0JISrJ7eDfJfHmuuC5+pCTBx3ZcxAxsmwD4t6029vEG0O2BOh
4cTiBADMQyiBIBYhPxqoCCKBI+H/HyLIqrV2BwKMb8bfWWL9B22704EYZOVO7oCG
ACrePrYVMf0lsg2CfnDdK74AOe7K5bAIi/t3DJHbOgjpbzUXWjvVLMoC7M5lMJAg
G375YD8KAVXVo61l75fpxeKRO/6LQd4EyGQ1WjKkKv/Zo+ujIbQeSW1pZSBOYXp3
aXNrbyA8YWRyZXNAZW1haWwucGw+iF4EExECAB4FAkGaNQMCGwMGCwkIBwMCAxUC
AwMWAgECHgECF4AACgkQZYUAdmML6D/UXACghsaiUUUvQvnqzOBVPQv3BtWeAQkA
oJkaQr4GRXnKRplRDIJu7gxnx3j3uQENBEGaNQoQBAC5AT4WPf/P633ZPyUUgQyR
3hfHXGc6JAbqybXC9XsOWwTX9SroFz2ew+T69WXIFLxOy/wkzsiOc1vWVmaDuu0k
VOuaaNp2K9JwZU4Z2kDdkAs7G0UxNSjTCcdbNeUQgZkWjhzafg0hr1x69Gw3Y39O
yVz1H7tSCRRUB88CEoggQwADBgQAo/RYzidlKQ8SNgd7IUX7JH7ZBsxACuvkygFE
rK0oZpjeMYIypLm1yhsQ3BlnQDL4P9bSHn7SlVmHg3IlaBJSMZZ6HnTcnnDqfPun
VWFfpatIEMI1ZszC/QzhD5L8dDQTUWwaacTrwVv5zXmbHx8gICoCLoTZrjfIxV5y
d922OhqISQQYEQIACQUCQZo1CgIbDAAKCRBlhQB2YwvoP64MAKCOQK76i9lrE9oI
UrNYM/v4Myap4QCcD3B77vNHeu+CfBv56a7XPYlbLgY=
=AFFC
-----END PGP PUBLIC KEY BLOCK-----
Powyższą zawartość razem ze znacznikami BEGIN i END kopiujemy a następnie wklejamy jako treść wiadomości e-mail.
Osobiście preferuję jednak eksport na serwer i import także bezpośrednio z serwera.
Teraz słów kilka na temat importu żądnego klucza z serwera. Załóżmy, że chcemy prowadzić korespondencję zaszyfrowaną kluczem pgp z kolegą Jankiem. W tym celu będziemy potrzebowali jego klucza publicznego. Aby go zdobyć, musimy wykonać poniższe:
Kod:
gpg --keyserver "hkp://subkeys.pgp.net" --search-key janek@mail.com
(polecenie zwróci nam listę kluczy używanych kiedykolwiek przez Janka. Jeżeli nie mamy konkretnej informacji, który klucz wybrać, importujemy najnowszy (musimy podać numer porządkowy klucza z listy). Tym sposobem klucz zostanie zaimportowany i znajdzie się na naszej lokalnej liście kluczy.
Dla pewności możemy jeszcze zweryfikować zaimportowany klucz:
Kod:
gpg --edit-key janek@mail.com (tutaj będziemy musieli określić np. stopień zaufania)
Teraz już możemy bezpiecznie korespondować 
Istnieją przeróżne programy i dodatki do przeglądarek pozwalające szyfrować i odszyfrowywać tekst, jednak opiszę tutaj sposób konsolowy.
Treść wiadomości znajduje się w pliku: /wiadomość/do/zaszyfrowania.txt
wykonujemy:
Kod:
gpg --armour --output /zaszyfrowana/wiadomość.gpg -r user_id /wiadomość/do/zaszyfrowania.txt
Następnie aby otrzymać zaszyfrowany tekst wiadomości i wkleić go do maila:
Kod:
cat /zaszyfrowana/wiadomość.gpg
Otrzymamy treść wiadomości zamkniętą w znacznikach BEGIN i END jak wyżej, całość wklejamy jako treść wiadomości e-mail i gotowe.
Teraz by odszyfrować wiadomość e-mail musimy w analogiczny sposób wykonać:
skopiować treść e-maila do pliku i zapisać go z rozszerzeniem .gpg
a następnie:
Kod:
gpg --decrypt /wiadomość/e-mail.gpg
i musimy podać passphrase (nasze skomplikowane hasło podane przy generowaniu pary kluczy), w odpowiedzi otrzymujemy odszyfrowaną wiadomość 
VOILA!
Powodzenia i miłej zabawy. Mam nadzieję, że komuś przyda się ten mini tutorial.
W sieci można znaleźć wiele poradników na ten temat ale moim celem było stworzenie poradnika typu "step by step" dla konkretnego zadania i zebranie w nim tylko niezbędnych informacji.