git每次突然开始要求SSH密钥密码

时间:2015-05-28 00:46:55

标签: git github 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不能正常工作,但我不知道为什么以及如何修复它。

3 个答案:

答案 0 :(得分:36)

由于您提到brew,我假设您在Mac上运行。这也发生在我身上,解决方案是确保我将密码添加到钥匙串(Mac版本的ssh-agent,在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

我从这里获得了这些信息:

以上解决了ssh密钥的OP问题。如果您还要缓存HTTPS凭据,以下内容对Mac用户也很有用。您可以使用凭证帮助程序执行此操作。要告诉git使用osxkeychain帮助器,请确保将其添加到~/.gitconfig(或~/.config/git/config)。

[credential]
    helper = osxkeychain

您可以从命令行设置此条目,而不是直接编辑文件:

$ git config --global credential.helper osxkeychain

有关更多详细信息,请参阅这些链接(包括如何验证您的系统是否已安装osxkeychain帮助程序):

答案 1 :(得分:2)

我的ssh-agent似乎出了问题。

我试图阻止它(使用kill -9)并再次启动它(使用ssh-agent),但它无法解决问题。

在我运行eval 'ssh-agent -s'后,所有内容都开始按预期运行了。

我仍然不知道为什么会这样。

答案 2 :(得分:0)

在我的情况下,发生这种情况是因为我更改了用于Github的ssh密钥,却忘记了更改~/.ssh/config中的条目。

我应该将IdentityFile ~/.ssh/id_rsa行更改为新SSH密钥的位置。