从 1password ssh-agent 恢复后,Git 提交“错误:无法连接到套接字。代理正在运行吗?致命:无法写入提交对象”

Ohm*_*ude 19 git macos ssh 1password

在任何地方都找不到答案,但最终找出了问题并想分享解决方案。

问题:使用 1Password ssh 代理后,尝试git commit通过 Mac 上的终端进行连接会产生以下错误:

error: Could not connect to socket. Is the agent running?

fatal: failed to write commit object
Run Code Online (Sandbox Code Playgroud)

解决方案:1Password修改两个文件,其中指定使用哪个ssh;~/.gitconfig~/.ssh/config。删除 1Password 作为默认 ssh 代理后,这两个文件也必须恢复:

在 中~/.ssh/config,删除此内容:

Host *
  IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
Run Code Online (Sandbox Code Playgroud)

在你的 中~/.gitconfig,替换它:

[gpg "ssh"]
    program = /Applications/1Password.app/Contents/MacOS/op-ssh-sign
Run Code Online (Sandbox Code Playgroud)

通过这条路径到达您喜欢的任何地方ssh(可能/usr/bin/ssh):

[gpg "ssh"]
    program = /usr/bin/ssh
Run Code Online (Sandbox Code Playgroud)

此解决方案适用于命令行 git 和 GitHub Desktop 客户端。

Jes*_*hof 38

我注意到我的 1Password 没有运行。所以我启动了 1Password 应用程序,它立即生效了。


Ole*_*mak 7

此错误可能意味着您已设置 1Password 来签署您的提交,很可能涉及指纹读取器。但您已退出 1Password。

重新登录 1Password,它应该可以再次使用了!


小智 -1

以下内容适用于Linux操作系统。MacO 也类似

  1. 删除以下行
Host *
    IdentityAgent ~/.1password/agent.sock
Run Code Online (Sandbox Code Playgroud)

~/.ssh/config文件中

  1. 删除以下行
[gpg "ssh"]
  program = "/opt/1Password/op-ssh-sign"
Run Code Online (Sandbox Code Playgroud)

~/.gitconfig文件中