Я только что закончил компиляцию GnuPG (версия 2.2.9) и всех ее зависимостей для Mac OS High Sierra. Это было довольно интересно. После решения небольшой проблемы с тестами libgcrypt (с небольшой помощью соответствующего рецепта от Homebrew) все работало в основном из коробки.
Пытаясь импортировать свой закрытый ключ, я не смог, потому что в системе не хватало программы. Быстрый поиск заставил меня приземлиться на этой странице, но это не очень помогло, поэтому я просто решил собрать сборку самостоятельно.
Из своего опыта использования GnuPG на машинах Linux я уже знал, что хотел бы ввести свой пароль в обычном приглашении в командной строке, без раздражающих, разрушающих диалоговых окон. И именно поэтому я разделяю процесс здесь. Это просто, но может помочь кому-то с подобной проблемой.
Начните с получения исходного кода pinentry от GnuPG. Проверьте их сайт. На момент написания статьи ссылка на скачивание источника была https://gnupg.org/ftp/gcrypt/pinentry/pinentry-1.1.0.tar.bz2. Скачайте также подпись и проверьте подлинность, используя сам gpg.
НЕ ПРОПУСТИТЕ ПРОВЕРКУ, это важно ! Эта программа будет иметь доступ ко всем вашим паролям gpg и закрытым ключам. Вам лучше убедиться, что это именно то, что он утверждает! Если у вас возникли проблемы, убедитесь, что вы импортировали ключи из сопровождающих GnuPG (см. Здесь):
$ gpg --verify pinentry-1.1.0.tar.bz2.sig pinentry-1.1.0.tar.bz2
Теперь, когда вы уверены, что работаете с аутентичными исходными файлами, извлеките исходный код и cd
в этот каталог:
$ tar xvf pinentry-1.1.0.tar.bz2
$ cd pinentry-1.1.0
Компиляция очень проста:
$ ./configure --enable-pinentry-tty
$ make
$ sudo make install
Может быть, что configure
будет жаловаться на некоторую отсутствующую зависимость. В этом случае просто прочитайте ошибку и загрузите зависимость с веб-страницы GnuPG (всегда проверяя целостность загрузки!).
Важный бит команд выше - флаг --enable-pinentry-tty
. Pinentry TTY - это самый простой способ ввести ваш пароль в очень обычной и скучной командной строке. Именно то, что я хотел! Если я не ошибаюсь, версия curses
будет построена в любом случае. Хотя это опция CLI, я нахожу ее такой же разрушительной, как и все остальные.
После установки вы увидите несколько новых двоичных файлов в /usr/local/bin
. Убедитесь, что у вас есть один с именем pinentry-tty
(если вы этого не сделали, что-то пошло не так ...).
Чтобы сделать этот новый двоичный файл способом ввода пароля gpg по умолчанию, добавьте следующую строку в ~/.gnupg/gpg-agent.conf
(создайте файл и каталог, если они еще не существуют):
pinentry-program /usr/local/bin/pinentry-tty
Вероятно, это не сработает, если вы попытаетесь немедленно, потому что у вас, скорее всего, все еще есть gpg-agent, работающий со старой конфигурацией. Вперед, убейте всех gpg-агентов и создайте нового:
$ sudo killall gpg-agent
$ gpg-agent --daemon
Это оно! Наслаждайтесь старым стилем TTY pinentry :)