Агент SSH: `sign_and_send_pubkey: ошибка подписи для ECDSA-SK ... от агента: агент отказался от операции`, за исключением самого первого раза
У меня есть пара ключей ecdsa-sk, которую я сгенерировал и добавил в свою учетную запись github (привязанную к yubikey). Если я попробую какое-либо соединение с использованием этого ключа, например , я получу:
sign_and_send_pubkey: signing failed for ECDSA-SK "[...]/.ssh/id_ecdsa_sk" from agent: agent refused operation
Никакого сочетанияssh-add
команды, которые я пробовал, работают (удаление ключа, повторное добавление и т. д.).ssh-add -l
ключ покажется как присутствующий, но я все равно получаю вышеуказанную ошибку.
Единственное, что работает, это убить и сразу запустить:
ssh-add -K <ecdsa keyfile>
Если я это сделаю, то сработает — один раз . Если я сначала сделаю что-нибудь еще с агентом, добавлю другие ключи и т. д., то произойдет сбой (выдаст указанную выше ошибку), и если я немедленно запущуgit push
во второй раз он потерпит неудачу (и постоянно, пока я не убьюssh-agent
снова).
К сожалению, я использую Mac (Monterey, чип M1). У меня такая проблема только с ключом esdsa-sk. Мои обычные ключи RSA работают нормально. Я что-то упускаю или делаю что-то не так? Я знаю, что поддержка ecdsa-sk относительно новая; может ли это быть ошибкой?
1 ответ
Используйте OpenSSH Homebrew.
$ brew install openssh
После установки вам необходимо переопределить тот, который указан в вашем PATH, поместив папку OpenSSH в начало вашего PATH в вашем RC-файле, как показано ниже.
$ export PATH=$(brew --prefix openssh)/bin:$PATH
Как только вы это сделаете и найдете источникrc
файл, вы сможете сгенерировать свой ключ
Протестировано на macOS Monterey иOpenSSH_9.0p1, OpenSSL 1.1.1q 5 Jul 2022