ssh-agent
очень прост в использовании, я запускаю его и использую ключи ssh-add keyfile
. После завершения процесса ssh-agent
все файлы исчезли.
Как я могу получить такое же поведение с gpg-agent
? Самая близкая программа, которую я нашел, была gpg-preset-passphrase
. Но, глядя на страницу руководстваgpg-agent
, кажется, что каталог создан для хранения закрытых ключей.
Я могу ошибаться, поэтому мне интересно, как я могу настроить gpg-agent
таким образом, чтобы файлы / каталоги не создавались? Если это невозможно, другие предложения, чтобы сделать gpg-agent
работу как ssh-agent
+ ssh-add
также приветствуются. Я не ищу такие решения с графическим интерфейсом, как Seahorse.
gpg-connect-agent
?gpg-preset-passphrase
. Я побежалgpg-connect-agent
, получил оболочку и выполнил,setkey IDOFMYPRIVATEKEYHERE
а затемpreset_passphrase
и id привел к «ERR 67108924 Unsupported <GPG-agent> - no --allow-preset-passphrase»Ответы:
Я решил еще раз взглянуть на это и выяснить, как это работает. GPG использует терминологию «кеш» для хранения паролей. На максимальное время хранения могут быть наложены два ограничения:
Кроме того, существуют два варианта для обоих ограничений: один для ключей GPG и один для ключей SSH (если поддержка включена).
Соответствующие записи на странице руководства от
gpg-agent(1)
:Парольные фразы всегда кэшируются (в памяти, а не на диске! Проверено с помощью git-репо
$HOME
), поэтому в этом нет особой необходимостиssh-add
. Например, подписание фиктивных данных уже запускает кеш:Чтобы внести постоянные изменения в настройки кэша gpg-agent, отредактируйте ~ / .gnupg / gpg-agent.conf` и добавьте что-то вроде:
Я попытался включить поддержку агента SSH, указав
enable-ssh-support
, но это заставляет gpg-agent запрашивать у вас другой ключ для шифрования ключа, а затем сохраняет ваш закрытый ключ~/.gnupg/private-keys.d/
. Не подходите ко мне, я придерживаюсь подхода двойного ssh-agent / gpg-agent.Некоторые бонусные советы:
max-cache-ttl-ssh
может быть указан при добавлении ключа, например:ssh-add -t 600 ~/.ssh/id_rsa
Чтобы предотвратить сохранение парольной фразы GPG в агенте, отключите агент. В более новых версиях GPG этот параметр
--no-use-agent
игнорируется, но вы можете запретить использование агента, очистив соответствующую переменную среды. Несколько способов сделать это:источник
gpg-agent
активный? (Проверьте список процессов, например, с помощьюps u -C gpg-agent
). Правильно ли установлено время ожидания кэша? Если вы используете его для подписи (в отличие от аутентификации (SSH)),ignore-cache-for-signing
опция не установлена?