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

Я использую это, чтобы получить его, но это зависит от запущенной сессии:

if [[ -z $DBUS_SESSION_BUS_ADDRESS ]]; then
    pgrep "gnome-session" -u "$USER" | while read -r line; do
        exp=$(cat /proc/$line/environ | grep -z "^DBUS_SESSION_BUS_ADDRESS=")
        echo export "$exp" > ~/.exports.sh
        break
    done
    if [[ -f ~/.exports.sh ]]; then
        source ~/.exports.sh
    fi
fi

Измените 'gnome' на любую другую сессию, которая у вас есть (она должна быть запущена).

11
19.06.2017, 06:05
2 ответа

По-видимому, ответ был следующим:

echo UPDATESTARTUPTTY | gpg-connect-agent

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

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

41
27.01.2020, 19:57

В моем случае проблема заключалась в используемой программе pinentry. Я использовал pinentry -emacs. Кажется, он не обрабатывает приглашение окна ввода двойного текстового поля, которое ssh-addвызывает при использовании с агентом gpg -.

Удаление pinentry -emacs и установка GTK pinentry решили проблему здесь.

3
27.01.2020, 19:57

Теги

Похожие вопросы