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
я получил эту информацию от сюда:
- http://www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html#Passphrase
- https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/
по указанному выше адресу. проблема 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'
все снова начало работать, как ожидалось.
до сих пор понятия не имею, почему это произошло..