Skip to content
andyceo edited this page Aug 6, 2018 · 3 revisions
  • Создадим мастер-ключ (ключ, который может только заверять другие ключи):

      gpg2 --full-gen-key --expert
    

    Нужно сгенерировать ключ, который будет только подписывать другие ключи (способность Заверить). Запустите эту команду дважды, чтобы сгенерировать RSA и ed25519 ключи. Будет спрошена passphrase. Обязательно нужно запомнить ее. Это единственное, что и будет являтся вашим паролем, хранящимся исключительно в вашей голове.

    Для RSA:

    1. нажать (8) RSA (с требуемыми возможностями)
    2. убрать у ключа все возможности, кроме Заверить, нажимая для этого числа 1-2-3, чтобы получилось: Допустимы действия: Заверить
    3. размер ключа - 4096 бит
    4. затем нажимать и возить мышкой и клавиатурой для энтропии

    Для ed25519:

    1. нажать (11) ECC (с требуемыми возможностями)
    2. аналогично RSA - убрать все кроме Заверить
    3. выбрать (1) Curve 25519
    4. подтвердить выбор и возить мышкой и клавиатурой для энтропии

    В различных мануалах встречается команда

      gpg2 --quick-gen-key 'Alice Engineer <alice@example.org>' rsa4096 cert
    

    почему-то она не работает совсем в Ubuntu 16.04.4.

    После этого пункта команда gpg2 --list-keys должна выводить что-то вроде:

      /home/USER/.gnupg/pubring.kbx
      --------------------------------
      pub   rsa4096/11112222 2018-01-08 [C] [годен до: 2020-03-17]
      uid       [  абсолютно ] Full Name <yourmail@example.com>
    
      pub   ed25519/33334444 2018-01-08 [C] [годен до: 2020-03-17]
      uid       [  абсолютно ] Full Name <yourmail@example.com>
    
  • Добавим нужные идентификаторы себя с помощью команды:

      gpg2 --quick-adduid [fpr] 'Alice Engineer (alicee) <allie@example.net>'
    
  • Генерируем подключи. Будем делать это из консоли gpg2. Для этого нужно изменить какой-либо уже существующий базовый ключ, в данном случае, будем изменять уже существующий RSA-ключ:

      gpg2 --edit-key 11112222
    

    Затем в консоли, набрать:

      addkey
    

    и затем выбрать (4) RSA (только для подписи), а потом снова addkey и выбрать (6) RSA (только для шифрования), таким образом сгенерировав два отдельных ключа для подписи и другой для шифрования. Выбирайте для них другую парольную фразу, чем для мастер-ключей. Должно получиться что-то вроде этого:

      $ gpg2 --list-keys
      /home/USER/.gnupg/pubring.kbx
      --------------------------------
      pub   rsa4096/11112222 2018-01-08 [C] [годен до: 2020-03-17]
      uid       [  абсолютно ] Full Name <yourmail@example.com>
      uid       [ неизвестно ] Full Name (alicee) <yourmail@example.net>
      uid       [ неизвестно ] Full Name (alicee) <yourmail@example.org>
      sub   rsa2048/55556666 2018-01-08 [S] [годен до: 2019-03-17]
      sub   rsa2048/77778888 2018-01-08 [E] [годен до: 2019-03-17]
    
      pub   ed25519/33334444 2018-01-18 [C] [годен до: 2020-03-17]
      uid       [  абсолютно ] Full Name <yourmail@example.com>
      uid       [ неизвестно ] Full Name (alicee) <yourmail@example.net>
      uid       [ неизвестно ] Full Name (alicee) <yourmail@example.org>
    
  • Отправим публичные ключи на сервер:

      gpg2 --send-keys
    

    и на Github:

      gpg2 --export --armor 11112222
    

    (следуйте их официальной инструкции Adding a new GPG key to your GitHub account)

  • Теперь нужно забекапить куда-нибудь в надежное оффлайн-место получившуюся папку ~/.gnupg и удалить секретную часть ключей и сертификатов их отзыва. Для подробностей см. ссылки.

Ссылки:

Разное

Возможно, чтобы работать с менеджером паролей pass, нужно будет сделать полное доверие ключу: gpg --edit-key 11112222, trust, 5, save

Sidebar is under construction

Clone this wiki locally