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


12

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

Ответы:


4

Оказывается, это было невероятно просто. Вместо того, чтобы использовать этот скрипт, я просто удалил опцию «--agents» из моего старого скрипта запуска цепочки для ключей (руководство здесь ).

Это приводит к тому, что программа Keychain ищет файлы ssh-agent и gpg-agent. Теперь моя система шифрования работает довольно легко, даже при использовании обоих типов агентов.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.