所以,我使用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
Run Code Online (Sandbox Code Playgroud)试图更新git和osxkeychain,当前版本是:
git 2.4.1
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
Run Code Online (Sandbox Code Playgroud)为github.com清理osxkeychain
我看到的一个奇怪的事情就是:
$ 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:
Run Code Online (Sandbox Code Playgroud)
所以,我的猜测是ssh-agent不能正常工作,但我不知道为什么以及如何解决它.
Sub*_*ion 38
既然你提到过,brew
我假设你在Mac上运行.这也发生在我身上,解决方案是确保我将密码添加到钥匙串(Mac版本,在Mac上ssh-agent
自动启动,包括钥匙串支持):
$ ssh-add -K
Run Code Online (Sandbox Code Playgroud)
并存储不同密钥的密码:
$ ssh-add -K /path/to/private/key/file
Run Code Online (Sandbox Code Playgroud)
特别是在我的情况下(因为我为GitHub使用单独的键):
$ ssh-add -K ~/.ssh/github_rsa
Run Code Online (Sandbox Code Playgroud)
要自动将密钥加载到ssh-agent并在密钥链中存储密码,您需要修改〜/ .ssh/config:
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
我从这里获得了这些信息:
以上解决了ssh密钥的OP问题.如果您还要缓存HTTPS凭据,以下内容对Mac用户也很有用.您可以使用凭证帮助程序执行此操作.要告诉git使用osxkeychain
帮助程序,请确保将其添加到您的~/.gitconfig
(或~/.config/git/config
).
[credential]
helper = osxkeychain
Run Code Online (Sandbox Code Playgroud)
您可以从命令行设置此条目,而不是直接编辑文件:
$ git config --global credential.helper osxkeychain
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅这些链接(包括如何验证系统是否已osxkeychain
安装帮助程序):
归档时间: |
|
查看次数: |
5220 次 |
最近记录: |