ПомощьСоздание gpg-ключа

Создание gpg-ключа

Для генерации пары ключей наберите gpg --gen-key:

a@kl2:~$ gpg --gen-key
Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection?

и выберите второй пункт, затем задайте длину ключа 2048 бит, срок устаревания ключа (0 — не устаревает никогда), введите свое имя (кириллица не допускается), адрес электронной почты и комментарий (нажмите Enter). Вконце введите пароль, которым будет зашифрован ваш ключ.

Для просмотра сгенерированных ключей наберите gpg --list-keys:

a@kl2:~$ gpg --list-keys
/home/a/.gnupg/secring.gpg
--------------------------
sec   2048D/73CF8EB8 2010-09-09
uid                  Aleksej Lebedev 
ssb   2048g/3AC723D2 2010-09-09

Экспортировать открытый ключ в тектовом виде можно командой gpg --export -a:

a@kl2:~$ gpg --export -a | tee public-gpg-key.asc
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.16 (NetBSD)
mQMuBEyJLUERCACEVh8kipug62+QF9TtOFGMBBd5XIxjnNRbpSF8LCmbRkaZd6fh
...
tMDahiQGKSKkHyQCIA==
=nLut
-----END PGP PUBLIC KEY BLOCK-----

Если у вас больше одной пары ключей, то при экспорте нужно указать какой именно вы хотите экспортировать. (Ключ -a добавляется всегда, когда требуется текстовый вывод.)

Аналогичной командой можно экспортировать закрытый ключ: gpg --export-secret-keys -a >private-gpg-key. Это имеет смысл делать, если вы хотите пользоваться им дома. Перед этой командой не забудьте установить umask 077, чтобы экспортируемый ключ не был доступен для чтения никому, кроме вас. После экспорта убедитесь, что файл получил правильные права. Скопирйте на надежный носитель и удалите исходный файл. Дома, скопировав файл в домашнюю директорию, для импортирования ключа себе на компьютер наберите

gpg --import private-gpg-key

где private-gpg-key --- это текстовый файл с вашим приватным ключом. После импортирования, удалите этот файл.

Чтобы сгенерировать открепленную подпись файла, наберите:

a@kl2:~$ gpg -ba program.c

При этом подпись будет сохранена в файле program.c.asc.

Для проверки подписи служит команда gpg --verify, которая принимает первым аргументом имя файла с открепленной подписью, а файл передается либо на стандартный ввод, либо указывается вторым аргументом:

a@kl2:~$ gpg --verify program.c.asc program.c
gpg: Signature made Thu  9 Sep 23:25:30 2010 MSD using DSA key ID 73CF8EB8
gpg: Good signature from "Aleksej Lebedev "

Если подпись неверна, то вывод команды gpg --verify выглядит так:

a@kl2:~$ gpg --verify program.c.asc program.c
gpg: Signature made Thu  9 Sep 23:25:30 2010 MSD using DSA key ID 73CF8EB8
gpg: BAD signature from "Aleksej Lebedev "

Вот пример вывода, когда подпись испорчена:

gpg: CRC error; 2882BB - 15C8E6
gpg: packet(2) with unknown version 0
gpg: no signature found
gpg: the signature could not be verified.

Для того, чтобы проверить файл, подписанный третьим лицом, необходимо импортировать его открытый ключ третьего лица в базу gpg. Это можно сделать с помощью команды gpg --import somebody.pubkey.