Я использую openssh7.5p1 и gnupg 2.1.21 на Arch Linux (это версии по умолчанию, которые поставляются с Arch). Я хотел бы использовать gpg-agent
в качестве агента SSH. Я положил следующее в моем ~/.gnupg/gpg-agent.conf
:
pinentry-program /usr/bin/pinentry-qt
enable-ssh-support
Arch автоматически запускает gpg-agent из systemd, поэтому я установил
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh"
Когда я запускаю ssh-add -l
, он не сообщает никаких идентификаторов и ps
сообщает о gpg-agent --supervised
процессе, как я ожидал.
К сожалению, когда я запускаю ssh-add
, независимо от типа ключа, он не работает. Вот пример того, как я пробовал dsa:
$ ssh-keygen -f testkey -t dsa -N ''
Generating public/private dsa key pair.
Your identification has been saved in testkey.
Your public key has been saved in testkey.pub.
$ ssh-add testkey
Could not add identity "testkey": agent refused operation
Все остальные функции gpg работают правильно (шифрование / дешифрование / подпись). Кроме того, ключи, которые я генерирую, работают нормально, если я использую их напрямую с ssh, и они работают правильно, если я запускаю тот, ssh-agent
что идет с openssh.
В документации сказано, что ssh-add
следует добавить ключи ~/.gnupg/sshcontrol
, но, очевидно, ничего не происходит.
Мой вопрос: Что это самый простой способ для загрузки ключа , сгенерированного в OpenSSH ssh-keygen
INTO gpg-agent
, а может кто - то пожалуйста , вырезать и вставить терминальную сессию , показывая , как это работает?
Ответы:
Ответ, по-видимому, должен был бежать:
Я понятия не имею, почему программа pinentry работала нормально для других целей, таких как расшифровка файлов, но не работала для
ssh-add
.Хотя теперь это работает, он также создает копию закрытого ключа ssh, который не отображается под
gpg -Kv
, и, кроме того, похоже, не позволяет вам изменить фразу-пароль для вашего закрытого ключа (так как вы не можете редактировать ее с помощью--edit-key
) , По сути, я довольно недоволен тем, чтоgpg-agent
обеспечивает низкую видимость того, где копируются ваши секреты. Если вы ответите на этот вопрос, потому что надеетесь,gpg-agent
что он станет лучшей альтернативойssh-agent
, я бы посоветовал вам придерживатьсяssh-agent
этого, а не пытаться найти ответ. Основная причина отдать предпочтениеgpg-agent
, если вам нужно для использования смарт-карт.источник
В моем случае проблема заключалась в использовании программы pinentry. Я использовал pinentry-emacs. Кажется, что он не обрабатывает окно ввода двойного текстового поля, которое
ssh-add
запускается при использовании с gpg-agent.Удаление pinentry-emacs и установка GTK pinentry решили проблему здесь.
источник