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

标签 git github ssh

因此,我将 git 和 github 与 MFA 一起使用,因此,为了避免烦人的密码询问,一年多来我一直使用 git@github.com:user/repo.git URL 样式.

几天前,我运行了一个brew update,现在,每次尝试与 github 服务器同步时,git 都会询问我 key 密码。

到目前为止我做了什么:

  • 检查了我的配置,我觉得没问题,但这是(相关部分):

    [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 无法正常工作,但我不知道为什么也不知道如何修复它。

最佳答案

既然你提到了 brew,我假设你在 Mac 上运行。这也发生在我身上,解决方案是确保我将密码添加到钥匙串(keychain)(ssh-agent 的 Mac 版本,在 Mac 上自动启动,包括钥匙串(keychain)支持):

$ ssh-add -K

并存储不同 key 的密码:

$ ssh-add -K /path/to/private/key/file

特别是在我的情况下(因为我为 GitHub 使用单独的 key ):

$ ssh-add -K ~/.ssh/github_rsa

自动将 key 加载到 ssh-agent 并将密码短语存储在您的钥匙串(keychain)中,您需要修改您的 ~/.ssh/config:

Host *
 AddKeysToAgent yes
 UseKeychain yes
 IdentityFile ~/.ssh/id_rsa

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

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

[credential]
    helper = osxkeychain

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

$ git config --global credential.helper osxkeychain

查看这些链接了解更多详情(包括如何验证您的系统是否安装了 osxkeychain 助手):

关于git突然开始每次都要求SSH key 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30495445/

相关文章:

c++ - 如何将 Git 克隆加载到 QtCreator

几次推送后 Git 推送挂起

github - 使用 Google Colab 克隆私有(private)存储库的步骤

git - 克隆旧版本的 github repo

bash - Bash subshel​​l用ssh命令非常奇怪的行为

linux - 如何找出我在 go 老爹共享主机 ssh 上使用的发行版

git - 在 npm 包中使用非 npm-package git 子模块

git - 使用 Vim 输入 Git 提交信息的问题

github - Jenkins +Github : We couldn’t deliver this payload: Couldn't connect to server

linux - 如何在 Ubuntu 12.04 上的端口 443 上运行 SSH