
Я пытаюсь объединить свое программное обеспечение для шифрования в GnuPG и сталкиваюсь с запутанной проблемой.
Мой основной блок — headless-сервер, и я работаю исключительно в tmux. X-сессии нет, поэтому я настроил gpg-agent на использование pinentry-curses. Я настроил gpg-agent на вызов при входе в систему с эмуляцией ssh-agent с помощью этого скрипта:
if pgrep -u "${USER}" gpg-agent >/dev/null 2>&1; then
eval `cat $gnupginf`
eval `cut -d= -f1 $gnupginf | xargs echo export`
else
eval `gpg-agent -s --enable-ssh-support --daemon`
fi
Я уже добавил свой ключ SSH в gpg-agent, однако при попытке еще одного сеанса SSH команда зависает.
Я обнаружил, что если я завершаю gpg-agent и создаю новую оболочку входа, то агент работает так, как и должен (вызывает pinentry-curses, а затем работает как ssh-agent).
Однако если я создам другую оболочку входа (например, открыв еще одну панель tmux) и попытаюсь подключиться по ssh, команда зависнет, а окно pinentry-curses будет выведено поверх содержимого оболочки входа, которая изначально запустила агент.
Кроме того, если я закрыл оболочку, которая изначально запустила агента, pinentry-curses все равно вызывается и вызывает бесконечный цикл, нагружающий процессор. (Известная ошибка, см.http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559936.)
По сути, я хотел бы узнать, что изменить в моей настройке, чтобы агент GnuPG работал так же гладко, как ssh-agent. Спасибо за любую помощь!
решение1
Оказалось, что это было невероятно просто. Вместо того, чтобы использовать этот скрипт, я просто удалил опцию "--agents" из моего старого скрипта запуска связки ключей (руководствоздесь).
Это заставляет программу Keychain искать файлы ssh-agent и gpg-agent. Теперь моя система шифрования работает довольно гладко, даже полагаясь на оба типа агентов.