Ubuntu 16.04 ssh: sign_and_send_pubkey: сбой подписи: агент отказался от операции

80

Я только что обновил свою систему Ubuntu с 15.10 по 16.04, полностью уничтожив раздел Ubuntu 15 из моей системы.

После установки Ubuntu 16.04 я воссоздал свои ssh-ключи, поскольку я забыл их резервировать, но всякий раз, когда я пытаюсь использовать ssh, я получаю sign_and_send_pubkey: signing failed: agent refused operation , это немного раздражает, так как это позволяет мне перейти на мой ssh-сервер, но git отказывается нажмите код с помощью ssh.

Я уже нажал клавиши на сервер, используя ssh-copy-id .

Сервер, с которым я подключаюсь, - это сервер Ubuntu 16.04, обновленный с помощью команды do-release-upgrade . Любая помощь будет принята с благодарностью.

    
задан Gamerb 25.04.2016 в 18:31
источник

8 ответов

145

Похоже, что ssh-agent уже запущено, но он не может найти какие-либо ключи. Чтобы решить эту проблему, добавьте идентификаторы личного ключа в агент аутентификации, например:

ssh-add

Затем вы можете ssh на свой сервер.

Кроме того, вы можете увидеть список отпечатков пальцев всех тождеств, добавленных в настоящее время:

ssh-add -l
    
ответ дан Ron 25.04.2016 в 18:52
источник
16

У меня была та же проблема (те же симптомы)

[email protected]:~/.ssh$ ssh [email protected]
sign_and_send_pubkey: signing failed: agent refused operation
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

... но решение было другим.

Проблема исходила от использования GNOME-KEYRING. Сообщение, ссылающееся на решение, можно прочитать здесь .

Короче:

  1. Определите проблему, добавив SSH_AUTH_SOCK = 0 перед командой ssh. sam @ xxxxx: ~ / .ssh $ SSH_AUTH_SOCK = 0 ssh [email protected]
  2. В случае успешного подключения. Откройте приложение StartUp Application (например, используя функцию поиска на рабочем столе) и отключите использование gnome-keyring.
  3. Reboot

Страница содержит другие сведения в случае аналогичной проблемы с другим решением.

    
ответ дан sam 10.10.2016 в 08:59
10

Я получал sign_and_send_pubkey: signing failed: agent refused operation при входе на несколько серверов, читал ответ VonC на Stack Overflow для получения дополнительной информации о связанных ошибках, решение для меня заключалось в удалении gnome-keyring, удалении идентификаторов из ssh-agent и перезагрузке.

sudo apt-get autoremove gnome-keyring
ssh-add -D

Затем все мои клавиши начали работать отлично.

    
ответ дан Mike 26.04.2016 в 09:38
5

В моей системе (также Ubuntu 16.04, пытаясь подключиться к github) у меня был файл id_ed25519 в моей .ssh-папке, в результате которой ssh-add не удалось:

$ ssh-add
Identity added: ~/.ssh/id_rsa (~/.ssh/id_rsa)
Could not add identity "~/.ssh/id_ed25519": communication with agent failed

После удаления файлов ~/.ssh/id_ed25519* (они больше не нужны, это было из более раннего теста), все прошло отлично.

    
ответ дан Daniel Alder 11.06.2016 в 17:56
5

Случилось так, потому что у моего закрытого ключа была кодовая фраза. Если бы запустить ssh-add , а затем он запросил кодовую фразу и добавил правильно. Однако теперь он не запрашивает мою кодовую фразу, когда ssh'ing на машине.

    
ответ дан qwertzguy 16.02.2017 в 02:02
1

Добавление комментария, поскольку у меня была такая же проблема с ключами ed25519. Проблема в том, что это гном-ключ. Чтобы исправить это, я сделал следующее:

  • Unchecked ssh-key-agent (gnome-keyring) в "запускаемых приложениях"
  • Убит агент ssh-agent и gnome: (killall ssh-agent; killall gnome-keyring-daemon)
  • Повторный запуск демона: (eval ssh-agent -s )
  • Добавьте свой ключ: $ ssh-add id_ed25519 Введите кодовую фразу для id_ed25519: Добавлена ​​идентификация: id_ed25519
  • Profit !!
ответ дан Matt 16.12.2016 в 16:03
0

Я попробовал пару вещей, среди прочего, ssh-add, сброс SSH (удаление .ssh / на сервере и т. д., но не повезло. Так получилось, что мне просто пришлось спать над ним на одну ночь. помогло! Почему? Я предполагаю, что у ssh-агента, работающего на сервере, было что-то в его кеше, которое было обновлено позже той ночью с теперь правильными значениями. Во всяком случае, теперь это работает как шарм. Для этого он сделал это (Ubuntu 16.04 на localhost, 14.04 на сервере).

# on local host:
$ ssh-keygen
# (yes, overwrite the default file, and let the passphrase be empty)
$ ssh-copy-id ***.***.*.**
# (insert proper server IP address)
# now test
$ ssh ***.***.*.**
# this should have erected in .ssh/ on the server:
# -rw------- 1 *** *** 2000 aug.  11 09:55 authorized_keys
# no other magic going on! :)
    
ответ дан untill 11.08.2016 в 10:12
0

Я закончил тем, что сбросил мой файл известных хостов, и он сработал. Если бы снова ввести пароль, но он, наконец, принял правильный пароль. Это было после новой установки.     

ответ дан possumkeys 01.11.2016 в 08:46