git внезапно начал спрашивать пароль ключа SSH каждый раз

Итак, я использую git и github с MFA, поэтому, чтобы избежать раздражающего запроса пароля, более года я использую git@github.com:user/repo.git стиль URL-адрес.

пару дней назад я запустил brew update, и теперь, каждый раз, когда вы пытаетесь синхронизировать с серверами github, git спрашивает у меня пароль ключа.

что я сделал до сих пор:

  • проверил мои конфигурации, мне кажется нормально, но вот он (соответствующая часть):

    [user]
       name = Carlos Alexandro Becker
       email = caarlos0@gmail.com
       helper = osxkeychain
    
  • пытался обновить git и osxkeychain, текущие версии:

    git 2.4.1
    OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
    
  • очищенный osxkeychain для github.com

  • проверил, что ssh-агент запущен, повторно добавил мою личность

одна странная вещь, которую я видел, это:

$ ssh-add ~/.ssh/id_rsa.pub
Could not open a connection to your authentication agent.
$ ssh-agent sh -c 'ssh-add ~/.ssh/id_rsa.pub'
Enter passphrase for /Users/carlos/.ssh/id_rsa.pub:

Итак, я предполагаю, что как-то ssh-agent работает неправильно, но я понятия не имею, почему и как это исправить.

2 ответов


раз уж вы упомянули,brew, Я предполагаю, что вы работаете на Mac. Это также произошло со мной, и решение состояло в том, чтобы я добавил парольную фразу в брелок (версия Mac ssh-agent, автоматически запускается на Mac, включает поддержку keychain):

$ ssh-add -K

и сохранить парольную фразу для другого ключа:

$ ssh-add -K /path/to/private/key/file

конкретно в моем случае (так как я использую отдельный ключ для GitHub):

$ ssh-add -K ~/.ssh/github_rsa

для автоматически загрузите ключи в ssh-агент и сохраните парольные фразы в связке ключей, вам нужно изменить свой ~/.ssh / config:

Host *
 AddKeysToAgent yes
 UseKeychain yes
 IdentityFile ~/.ssh/id_rsa

я получил эту информацию от сюда:

по указанному выше адресу. проблема OP для ключей ssh. Следующее также полезно для пользователей Mac, Если вы хотите кэшировать свои учетные данные HTTPS. Это можно сделать с помощью помощника учетных данных. Чтобы сказать git использовать osxkeychain helper, убедитесь, что это добавлено в ваш ~/.gitconfig (или ~/.config/git/config).

[credential]
    helper = osxkeychain

вместо того, чтобы редактировать файл напрямую, вы можете установить эту запись из командной строки:

$ git config --global credential.helper osxkeychain

см. эти ссылки для более подробной информации (в том числе, как проверить, что ваша система имеет osxkeychain установлен помощник):


кажется, что что-то пошло не так с моим ssh-agent.

Я попытался остановить его (с kill -9) и запустите его снова (с помощью ssh-agent), но это не решит проблему.

после того, как я побежал eval 'ssh-agent -s' все снова начало работать, как ожидалось.

до сих пор понятия не имею, почему это произошло..