gpg-agent отказывается от SSH-ключей с сообщением ssh-add «агент отказался от операции»

Я использую openssh7.5p1 и gnupg 2.1.21 в arch linux (это версии по умолчанию, которые поставляются с arch). Я хотел бы использовать gpg-agent как агент ssh. Я ~/.gnupg/gpg-agent.conf следующее в свой ~/.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 , но, очевидно, ничего не происходит.

Мой вопрос: какой самый простой способ загрузить ключ, сгенерированный ssh-keygen openssh в gpg-agent , и может ли кто-нибудь разрезать и вставить сеанс терминала, показывающий, как это работает?

One Solution collect form web for “gpg-agent отказывается от SSH-ключей с сообщением ssh-add «агент отказался от операции»”

Ответ был, по-видимому, выполнен:

 echo UPDATESTARTUPTTY | gpg-connect-agent 

Я понятия не имею, почему программа pinentry отлично работала для других целей, таких как дешифрование файлов, но не работала для ssh-add .

Хотя теперь это работает, он также делает копию закрытого ключа ssh, который не отображается под gpg -Kv , и, кроме того, он не позволяет вам изменять парольную фразу на ваш закрытый ключ (поскольку вы не можете редактировать с --edit-key ). В основном я довольно недоволен тем, как gpg-agent обеспечивает низкую видимость того, где копируются ваши секреты. Если вы столкнулись с этим вопросом, потому что вы надеялись, что gpg-agent может быть лучшей альтернативой ssh-agent , я бы посоветовал вам придерживаться ssh-agent вместо того, чтобы опробовать мой ответ. Основная причина, чтобы предпочесть gpg-agent – это то, что вам нужно для использования смарт-карт.

  • Судоподобная утилита для ssh или, по крайней мере, git в частности?
  • Как я могу предупредить ssh-agent при использовании определенного ключа?
  • Агент SSH признал отказ подписываться с помощью ключей
  • Может ли SSH-Agent работать с удаленным сценарием bash?
  • Подключиться к целевому хосту через промежуточный хост без предварительного обмена ключами
  • sign_and_send_pubkey: сбой подписи: агент отказался от операции
  • Зачем оценивать вывод ssh-agent?
  • Перенаправление агента SSH на сервере
  • Как я могу обнаружить оболочку без входа? (В Zsh)
  • Использование lpass для разблокировки ssh-ключа
  • ssh-agent не работает должным образом
  • Linux и Unix - лучшая ОС в мире.