Лучшие практики для SSH, tmux и GnuPG Agent

Лучшие практики для SSH, tmux и GnuPG Agent

Я пытаюсь объединить свое программное обеспечение для шифрования в 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. Теперь моя система шифрования работает довольно гладко, даже полагаясь на оба типа агентов.

Связанный контент