Ответ 1
Запустите ssh-add
на клиентской машине, которая добавит ключ SSH к агенту.
Подтвердите с помощью ssh-add -l
(опять же на клиенте), что оно действительно добавлено.
Настройка новой цифровой капли океана с помощью SSH-клавиш. Когда я запускаю ssh-copy-id
, это то, что я получаю:
ssh-copy-id [email protected]
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
sign_and_send_pubkey: signing failed: agent refused operation
[email protected] password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
Однако, когда я затем пытаюсь выполнить ssh, это происходит:
ssh [email protected]
sign_and_send_pubkey: signing failed: agent refused operation
[email protected] password:
При вводе пароля я вхожу в систему в порядке, но это, конечно, побеждает цель создания SSH-ключа в первую очередь. Я решил взглянуть на сервер-сервер ssh-agent, и вот что я получаю:
[email protected]:~# eval `ssh-agent -s`
Agent pid 5715
[email protected]:~# ssh-add -l
The agent has no identities.
user/.ssh/authorized_keys также содержит запись ключа ssh-rsa, но find -name "keynamehere"
ничего не возвращает.
Запустите ssh-add
на клиентской машине, которая добавит ключ SSH к агенту.
Подтвердите с помощью ssh-add -l
(опять же на клиенте), что оно действительно добавлено.
После обновления Fedora 26 до 28 я столкнулся с той же проблемой. И следующие логи отсутствовали
/var/log/secure
/var/log/messages
ВОПРОС:
[email protected] ~ ssh [email protected]
sign_and_send_pubkey: signing failed: agent refused operation
[email protected] password:
сообщение об ошибке не указывает на актуальную проблему. Проблема решена
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
У меня была такая же проблема в Linux Ubuntu 18. После обновления с Ubuntu 17.10 каждая команда git будет показывать это сообщение.
Чтобы решить эту проблему, убедитесь, что у вас есть правильное разрешение для id_rsa
и id_rsa.pub
.
Проверьте текущий номер chmod, используя stat --format '%a' <file>
. Должно быть 600 для id_rsa
и 644 для id_rsa.pub
.
Для изменения разрешения на использование файлов
chmod 600 id_rsa
chmod 644 id_rsa.pub
Это решило мою проблему с обновлением.
К этой ошибке:
# git pull
sign_and_send_pubkey: signing failed: agent refused operation
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
Проверьте или снова добавьте открытый ключ в учетную запись Github> профиль> ssh.
Я решил так:
# chmod 400 ~/.ssh/id_rsa
# ls ~/.ssh/id_rsa -ls
4 -r--------. 1 reinaldo reinaldo 1679 Jul 26 2017 /home/reinaldo/.ssh/id_rsa
# git pull
remote: Counting objects: 35, done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 35 (delta 9), reused 34 (delta 9), pack-reused 0
Unpacking objects: 100% (35/35), done.
Спасибо.
У меня была ошибка при использовании gpg-agent в качестве моего ssh-agent и использовании gpg-ключа в качестве моего ssh-ключа https://wiki.archlinux.org/index.php/GnuPG#gpg-agent.
Я подозреваю, что проблема была вызвана неправильным вводом пин-кода tty для gpg, вызванным моей командой sleep + lock, используемой в моей конфигурации sway
bindsym $mod+Shift+l exec "sh -c 'gpg-connect-agent reloadagent/bye>/dev/null; systemctl suspend; swaylock'"
или просто спать/приостановить
Сбросить ввод пин-кода tty, чтобы решить проблему
gpg-connect-agent updatestartuptty/bye >/dev/null
и исправление для моей команды Sway Sleep + Lock:
bindsym $mod+Shift+l exec "sh -c 'gpg-connect-agent reloadagent/bye>/dev/null; systemctl suspend; swaylock; gpg-connect-agent updatestartuptty/bye >/dev/null'"
Это должен быть вопрос SuperUser.
Правильно У меня есть одна и та же ошибка внутри MacOSX SourceTree, однако, внутри терминала iTerm2, все работает просто денди.
Однако проблема заключалась в том, что у меня есть два ssh-agent
running; (
Первый из них - /usr/bin/ssh-agent
(также известный как MacOSX), а затем и HomeBrew, установленный /usr/local/bin/ssh-agent
.
Увольнение терминала из SourceTree позволило мне увидеть различия в SSH_AUTH_SOCK
, используя lsof
Я нашел два разных ssh-agent
, а затем я смог загрузить ключи (используя ssh-add
) в system default ssh-agent
(т.е. /usr/bin/ssh-agent
), SourceTree снова работал.
Да. Запустите ssh-add на клиентском компьютере. Затем повторите команду ssh-copy-id [email protected]
Причиной возникновения ошибки SSH могут быть разные причины:
sign_and_send_pubkey: подпись не удалась: агент отказался от операции
Некоторые из них могут быть связаны с проблемами, отмеченными в других ответах (см. Ответы в этой ветке), некоторые из них могут быть скрытыми и, следовательно, требуют более тщательного изучения.
В моем случае я получил следующее сообщение об ошибке:
sign_and_send_pubkey: подпись не удалась: агент отказался от операции
[email protected]: В доступе отказано (publickey, gssapi-keyex, gssapi-with-mic)
Единственный способ найти настоящую проблему - вызвать подробный параметр -v, который привел к печати большого количества отладочной информации:
debug1: Connecting to website.domain.com [xxx.xxx.xxx.xxx] port 22.
debug1: Connection established.
debug1: identity file /home/user/.ssh/id_rsa.website.domain.com type 0
debug1: key_load_public: No such file or directory
debug1: identity file /home/user/.ssh/id_rsa.website.domain.com-cert type -1
Обратите внимание, что строка с key_load_public: No such file or directory
не ссылается на следующую строку, а не на предыдущую.
Поэтому SSH действительно говорит о том, что ему не удалось найти файл открытого ключа с именем id_rsa.website.domain.com-cert
и в моем случае это было проблемой, поскольку мой файл открытого ключа не содержал суффикс -cert
.
Короче говоря, исправление в моем случае состояло в том, чтобы убедиться, что файл открытого ключа был назван так, как и ожидалось. Я никогда не мог заподозрить это без отладки соединения.
Суть в том, что ИСПОЛЬЗУЙТЕ РЕЖИМ SSH VERBOSE (опция -v), чтобы выяснить, что не так, могут быть разные причины, ни одна из которых не может быть найдена в этом/другом потоке.
Для меня проблема заключалась в неправильном копировании/вставке открытого ключа в Gitlab. Копия сгенерировала дополнительный возврат. Убедитесь, что вы вставляете однострочный ключ.
Я получил sign_and_send_pubkey: signing failed: agent refused operation
ошибку sign_and_send_pubkey: signing failed: agent refused operation
. Но в моем случае проблема заключалась в неправильном пути pinentry
.
В моем ${HOME}/.gnupg/gpg-agent.conf
pinentry-program
указывало на старый путь к pinentry. Исправив путь и перезапустив gpg-agent
исправил это.
Я обнаружил это, следуя журналам с journalctl -f
. Там, где строки журнала, подобные следующему, содержат неправильный путь:
Jul 02 08:37:50 my-host gpg-agent[12677]: ssh sign request failed: No pinentry <GPG Agent>
Jul 02 08:37:57 my-host gpg-agent[12677]: can't connect to the PIN entry module '/usr/local/bin/pinentry': IPC connect call failed