Еще один `sign_and_send_pubkey: подпись не удалась: агент отказался от операции`

Вот еще один вопрос о столкновении между ssh и gnome-keyring-daemon, так как, проведя много часов в Интернете, я наконец сдался.

Окружающая среда

  • ОС: openSUSE 15.0
  • DE: XFCE
  • версия gnome-keyring-daemon: 3.20.1
  • версия морского конька: 3.20.0
  • версия git: 2.16.4
  • Версия ssh: OpenSSH_7.6p1, OpenSSL 1.1.0i-fips 14 августа 2018 г.

Ситуация

Попытка git pull репозитория приводит к сообщению

sign_and_send_pubkey: signing failed: agent refused operation

, хотя в течение многих лет я получение аккуратной подсказки графического интерфейса, которая запоминала введенный пароль на протяжении текущего сеанса. (AFAIU, это приглашение было показано Seahorse?).

После выполнения killall gnome-keyring-daemon последовательные попытки выполнить git pull приводят к приглашению терминала

Enter passphrase for key '/home/user/.ssh/id_rsa':

, которое нигде не хранит пароль (AFAIU, это означает, что ssh-agent не работает?).

Того же эффекта можно добиться, добавив SSH_AUTH_SOCK=0 перед git pull.

Чего я хочу

  • Выполнение git pull кэширует мой пароль SSH в течение текущего сеанса входа в систему (как это было раньше). Подсказка Neat GUI не является обязательной.
  • Поддерживаются ключи Ed25519. (Очевидно, у GNOME Keyring есть (были?) некоторые проблемы с ними).

Что я пробовал

  • Отключение «Агента ключа SSH» в Настройки XFCE → Запуск приложений
  • Копирование /etc/xdg/autostart/gnome-keyring-ssh.desktop в ~/.config/autostart, а затем добавление строки Hidden=true к скопированному файлу

Ни одно из вышеперечисленных действий не предотвратило запуск gnome-keyring-daemon при загрузке, так как я все еще вижу его в ps.

  • Создание ~/.pam_environment, затем добавление GSM_SKIP_SSH_AGENT_WORKAROUND DEFAULT=1 туда
  • Возврат к RSA
  • Игра с ssh-add
  • Установка git-credential-libsecret, затем выполнение git config --global credential.helper /usr/lib/git/git-credential-libsecret
  • Игра с мыслью об уничтожении gnome- пакет keyring, от которого отказались, поскольку, по-видимому, от него зависят несколько важных пакетов

0
28.01.2019, 06:05
1 ответ

Кажется, я наконец нашел почти идеальное решение:Брелок FunToo . Это восхитительно простое консольное приложение, которое вы просто добавляете в свой ~/.bashrc, а затем каждый раз, когда вы открываете терминал, оно автоматически разблокирует ваши SSH-ключи.

По сути, единственное различие между ним и комбо gnome -keyring + Seahorse, которое я использовал, заключается в том, что он запрашивает ваш пароль, как только вы открываете терминал в первый раз во время сеанса (, в отличие от первый раз, когда вы пытаетесь использовать свой SSH-ключ ), что может раздражать, если вы редко используете SSH. Но это не мой случай, так что я доволен.

0
28.01.2020, 04:03

Теги

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