Ответ 1
Поскольку вы упомянули, brew
, я предполагаю, что вы работаете на Mac. Это также случилось со мной, и решение состояло в том, чтобы я добавил ключевую фразу в цепочку для ключей (версия ssh-agent
для Mac, автоматически запускаемая на Mac, включает поддержку цепочки для ключей):
$ ssh-add -K
И сохранить фразу-пароль для другого ключа:
$ ssh-add -K /path/to/private/key/file
Конкретно в моем случае (так как я использую отдельный ключ для GitHub):
$ ssh-add -K ~/.ssh/github_rsa
Чтобы автоматически загружать ключи в ssh-agent и хранить парольные фразы в цепочке для ключей, вам нужно изменить ~/.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
, убедитесь, что он добавлен в ваш ~/.gitconfig
(или ~/.config/git/config
).
[credential]
helper = osxkeychain
Вместо непосредственного редактирования файла вы можете установить эту запись из командной строки:
$ git config --global credential.helper osxkeychain
Посмотрите эти ссылки для более подробной информации (в том числе о том, как убедиться, что в вашей системе установлен помощник osxkeychain
):