Чому gpg засмучується і як це зупинити?


24

Нещодавно я перейшов з однієї установки Ubuntu на іншу, і в процесі змінив своє ім’я користувача. Я імпортував свою пару відкритих / приватних ключів у gpg, і хоча розшифровка (за допомогою мого приватного ключа) працює добре, коли я намагаюся зашифрувати щось своїм відкритим ключем, я отримую таке попереджувальне повідомлення:

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

Після цього він запитує, чи я дійсно хочу використовувати ключ (я завжди відповідаю "так", тому що він насправді єдиний ключ у моєму брелоку, і я знаю, звідки він узятий). Я можу добре розшифрувати матеріал, тому чому gpg кидає шипучу форму, коли я щось намагаюся зашифрувати? І як я можу запобігти появі цього повідомлення знову?


Чи будь-яка відповідь на це старе питання на stackoverflow допоможе ?: stackoverflow.com/q/9460140/2422988
Павло

@Paul, так, це посилання трохи допомогло. Я встановив рівень "довіри" свого ключа як остаточний, і це, здається, вирішило проблему. Але в чому була проблема? Чому це сталося, і я це виправляв чи просто полегшував симптоми?
fouric

Вибачте InkBlend, я боюся, що моя здатність просіювати та порівнювати результати пошуку перевищує мої знання про pgp в цьому випадку, отже, моя спроба заявити про це як відповідь. Схоже, Гаррет знає, що відбувається, хоча.
Пол

Відповіді:


16

Мені вдалося відтворити проблему, яку ви переживаєте. Я робив це так:

$ gpg --no-default-keyring --keyring ./test-keyring  --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --gen-key

<specified parameters and let it do its thing>

gpg: key 58018BFE marked as ultimately trusted
public and secret key created and signed.

<snip>

$

Зауважте, що процес позначав ключ як "в кінцевому підсумку".

Тепер я експортую ключі:

$gpg --no-default-keyring --keyring ./test-keyring  --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --export-secret-keys -a >private.key

$gpg --no-default-keyring --keyring ./test-keyring  --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --export -a > public.key

Тепер я імпортую до нової бази даних gpg:

$gpg --no-default-keyring --keyring ./test2-keyring  --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file --import public.key

$gpg --no-default-keyring --keyring ./test2-keyring  --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file --import private.key

Тепер, якщо я намагаюся зашифрувати за допомогою нових брелок, я отримую:

$ gpg --no-default-keyring --keyring ./test2-keyring  --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file -r Fake -e
gpg: AE3034E1: There is no assurance this key belongs to the named user

pub  1024R/AE3034E1 2013-06-13 Fake User <fake@example.com>
 Primary key fingerprint: AD4D BAFB 3960 6F9D 47C1  23BE B2E1 67A6 5801 8BFE
      Subkey fingerprint: 58F2 3669 B8BD 1DFC 8B12  096F 5D19 AB91 AE30 34E1

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

Причиною цього є модель "мережі довіри". За замовчуванням для довіри публічному ключу потрібен 1 "остаточний" сертифікат довіри (як правило, там, де ви особисто підтвердили особу залучених людей), або 3 "граничні" сертифікати довіри (де хтось, кого ви знаєте, хто знає когось, кого ви знаєте ... підписав сертифікат).

Оскільки gpg - це програма безпеки, вона попереджає вас, якщо ви намагаєтесь зашифрувати ключ, який не вказаний як довірений. Причина, чому ваш власний ключ у цьому випадку не довіряється, проста. Це тому, що ви не експортували довірчі відносини з попереднього екземпляра gpg. Для цього використовуйте команди --export-ownertrust і --import-Ownertrust.

Як завжди, зверніться до чоловічої сторінки .


1
Головне, що всі дані про ключові довіри зберігаються окремо від брелоку (і секретні, і загальнодоступні)! ~/.gnupg/trustdb.gpgзберігає довірену базу даних, pubring.gpgвідкриті ключі та secring.gpgсекретні ключі. Про це зверніться до документації GnuPG .
gertvdijk

28

Я зіткнувся з тією ж проблемою, однак у мене більше не було доступу до старого ключа. Тож ви можете відтворити довіру до свого старого ключа за допомогою цього:

gpg --edit-key YOUR@KEY.ID
gpg> trust
Please decide how far you trust this user to correctly verify other users' keys
(by looking at passports, checking fingerprints from different sources, etc.)

  1 = I don't know or won't say
  2 = I do NOT trust
  3 = I trust marginally
  4 = I trust fully
  5 = I trust ultimately
  m = back to the main menu

Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y

ОП зробила це (зазначило в коментарях), але добре, щоб це було зазначено як відповідь.
muru

7

Ви можете використовувати --always-trustпрапор, щоб пропустити це повідомлення.


1
Це абсолютно вірно, але це просто забираючи симптоми, а не хворобу. Ваше рішення схоже на прийом аспірину, тому що у вас рак ...
Fabby

2
--always-trustє хорошим рішенням у деяких випадках , але якщо ключовим питанням справді є власний ключ користувача, то йому просто слід надати остаточну довіру.
Blacklight Shining

4
Моя хвороба - це наполегливе наполягання GPG на ключі, що трахковує моє програмне шифрування файлів, і роблять це по-різному на кожному комп'ютері, на який я встановлюю програмне забезпечення.
bbozo

@BlacklightShining, і якщо я ще не зміг перевірити це, Evolution не дозволяє шифрувати пошту на цю адресу. Не маю уявлення, чому шифрування тексту комусь вимагає абсолютної довіри - і лише з маргінальною довірою це не повинно бути можливим.
Іззи
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.