Следующий: Архитектурные детали, Пред: Заметки по отладке, Вверх: Отладка [Содержание][Указатель]
dirmngr
Скорее всего, в gpgsm
работает параметр enable-ocsp, но в
dirmngr
не включена функция OCSP параметром allow-ocsp в
файле dirmngr.conf.
В подавляющем большинстве случаев это вызвано тем, что переменная среды
GPG_TTY
не установлена правильно. Убедитесь, что она указывает на
настоящее устройство терминала, а не просто на ‘/dev/tty’;
т.е. установка ‘GPG_TTY=tty’ явно неправильна; вам нужно
‘GPG_TTY=`tty`’ — обратите внимание на знаки ‘`’. Также убедитесь,
что эта переменная среды экспортируется, т.е. ее установка должна
сопровождаться ‘export GPG_TTY’ (если это оболочка типа
Борна). GPG_TTY
нужно устанавливать даже для графических программ
ввода пароля. О том, как это делать, см. в разделе по установке
gpg-agent
.
В SSH нет способа указать программе gpg-agent
, какой терминал или
дисплей X Window используется. Так что при удаленном входе на машину, на
которой работает gpg-agent
с поддержкой SSH, программа ввода
пароля обращается к тому дисплею, с которого запущен
gpg-agent
. Чтобы решить эту проблему, можно отдать команду
echo UPDATESTARTUPTTY | gpg-connect-agent
Тогда в следующий раз программа ввода пароля появится на вашем дисплее или экране. Однако сначала нужно прервать выполнение работающей программы ввода пароля, потому что одновременно может выполняться только одна такая программа. Если вы планируете пользоваться SSH на новом дисплее, нужно отдать вышеуказанную команду перед вызовом SSH или любой другой службы, которая пользуется SSH.
Может случиться, что вы с помощью gpgsm
создали запрос на подпись
сертификата, но еще не получили и не импортировали сертификат
удостоверяющего центра. Однако вам может понадобиться немедленно
экспортировать секретный ключ на другую машину, чтобы там импортировать
его. Для этого есть одна хитрость, но нужно знать приблизительное время,
когда вы создали запрос на подпись сертификата. Командой
ls -ltr ~/.gnupg/private-keys-v1.d
вы получите список всех секретных ключей под управлением
gpg-agent
. Выберите ключ, который лучше всего соответствует
времени создания, и выполните команду
/usr/local/libexec/gpg-protect-tool --p12-export \ ~/.gnupg/private-keys-v1.d/foo >foo.p12 |
(подставьте свой путь до программы gpg-protect-tool
). Здесь
foo — имя файла с ключом, который вы выбрали (у него должен быть
суффикс .key). Программа ввода пароля запросит текущую фразу-пароль
для ключа и новую фразу-пароль для защиты файла PKCS#12.
Для импорта созданного файла на новой машине введите команду:
/usr/local/libexec/gpg-protect-tool --p12-import --store foo.p12 |
Будет запрошена фраза-пароль PKCS#12 и новая фраза-пароль для защиты импортированного секретного ключа в новом месте.
Обратите внимание, что простого способа связать существующие сертификаты с сохраненными секретными ключами не существует, потому что одни секретные ключи сохранены для использования с SSH или в других целях, и у них соответствующего сертификата нет.
Обычная проблема состоит в том, что в корневом сертификате отсутствует
обязательный атрибут basicConstraints, таким образом, gpgsm
отклоняет этот сертификат. Сообщение об ошибке, указывающее на «no value»
(нет значения) является признаком такого сертификата. Чтобы все равно
принять такой сертификат, можно воспользоваться признаком relax
в
файле trustlist.txt. Обратите внимание, что отпечаток и сам этот
признак можно добавить в trustlist.txt только вручную.
Подпись с ошибкой. Обойти проблему можно с помощью параметра --extra-digest-algo SHA256. Число N представляет внутренний идентификатор алгоритма; к примеру, 8 означает SHA-256.
При работе версии gpg
для W32 под Wine можно получить такие
сообщения об ошибках:
gpg: fatal: WriteConsole failed: Access denied
Это можно решить командой wineconsole
.
Некоторые операции, такие как --generate-key, в целях повышения
безопасности обязательно требуют прямой связи с консолью (например, чтобы
предотвратить появление фразы-пароля на экране). Таким образом, вместо
wine
надо пользоваться командой wineconsole
, которая
запустит консоль, в которой реализованы эти дополнительные особенности.
gpg
–search-key показывает странные ключи?
Для повышения быстродействия серверы ключей не проверяют ключи так, как это
делает gpg
. Может случиться, что в списке ключей, доступных на
серверах, будут показаны ключи с неправильными идентификаторами пользователя
или с идентификаторами пользователя из других ключей. Но если попробовать
импортировать такой ключ, плохие ключи или плохие идентификаторы
пользователя импортированы не будут. Это немного досадно, но мы не можем
ничего с этим поделать, пока не получим с сервера сами ключи.
Следующий: Архитектурные детали, Пред: Заметки по отладке, Вверх: Отладка [Содержание][Указатель]