Я пытаюсь консолидировать свое программное обеспечение для шифрования в GnuPG и столкнулся с непонятной проблемой.
Мое основное подразделение - это безголовый сервер, и я работаю исключительно в 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. Спасибо за любую помощь!