git突然开始每次都要求SSH密钥密码
git suddenly started to ask for SSH key password every time
因此,我将 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
已为 github.com
清理 osxkeychain
- 检查 ssh-agent 是 运行,重新添加我的身份
我看到的一件奇怪的事情是:
$ 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 无法正常工作,但我不知道为什么也不知道如何修复它。
我的 ssh-agent
好像出了点问题。
我试图停止它(使用 kill -9
)并再次启动它(使用 ssh-agent
),但它无法解决问题。
在我 运行 eval 'ssh-agent -s'
之后,一切又开始按预期工作了。
我仍然不知道为什么会这样..
既然你提到了 brew
,我假设你是 运行 Mac。这也发生在我身上,解决方案是确保我将密码添加到钥匙串([=17= 的 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/
以上解决了 ssh 密钥的 OP 问题。如果您还想缓存 HTTPS 凭据,以下内容对 Mac 用户也很有用。您可以使用凭据助手来执行此操作。要告诉 git 使用 osxkeychain
助手,请确保将其添加到您的 ~/.gitconfig
(或 ~/.config/git/config
)。
[credential]
helper = osxkeychain
您可以从命令行设置此条目,而不是直接编辑文件:
$ git config --global credential.helper osxkeychain
查看这些链接了解更多详情(包括如何验证您的系统是否安装了 osxkeychain
帮助程序):
就我而言,这是因为我更改了用于 Github 的 ssh 密钥而忘记更改 ~/.ssh/config
.
中的条目
我应该将行 IdentityFile ~/.ssh/id_rsa
更改为新 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
已为 github.com
清理 osxkeychain
- 检查 ssh-agent 是 运行,重新添加我的身份
我看到的一件奇怪的事情是:
$ 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 无法正常工作,但我不知道为什么也不知道如何修复它。
我的 ssh-agent
好像出了点问题。
我试图停止它(使用 kill -9
)并再次启动它(使用 ssh-agent
),但它无法解决问题。
在我 运行 eval 'ssh-agent -s'
之后,一切又开始按预期工作了。
我仍然不知道为什么会这样..
既然你提到了 brew
,我假设你是 运行 Mac。这也发生在我身上,解决方案是确保我将密码添加到钥匙串([=17= 的 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/
以上解决了 ssh 密钥的 OP 问题。如果您还想缓存 HTTPS 凭据,以下内容对 Mac 用户也很有用。您可以使用凭据助手来执行此操作。要告诉 git 使用 osxkeychain
助手,请确保将其添加到您的 ~/.gitconfig
(或 ~/.config/git/config
)。
[credential]
helper = osxkeychain
您可以从命令行设置此条目,而不是直接编辑文件:
$ git config --global credential.helper osxkeychain
查看这些链接了解更多详情(包括如何验证您的系统是否安装了 osxkeychain
帮助程序):
就我而言,这是因为我更改了用于 Github 的 ssh 密钥而忘记更改 ~/.ssh/config
.
我应该将行 IdentityFile ~/.ssh/id_rsa
更改为新 SSH 密钥的位置。