5

我已经从http://code.google.com/p/msysgit/downloads/list安装了 msysgit:Git-1.7.8-preview20111206.exe (编辑:我还安装了 msysGit-fullinstall-1.7.8-preview20111206.exe ,它可以方便地安装到不同的目录,并且我看到该实例存在相同的问题)。

我遇到了 ssh-agent 的问题,ssh-add 总是报告:“无法打开与您的身份验证代理的连接。”

不幸的是, ssh-add 没有给我任何关于它遇到的错误的更多细节。当它尝试连接到一个套接字时,感觉就像它正在超时,但它实际上并没有承认这是问题所在,并且 ssh-agent 的行为就像它正在正常运行一样。考虑到这种组合让我怀疑存在权限问题,但我不知道我会去哪里调查这类问题(而且我在 Windows 事件日志中看不到任何我认为重要的东西)。

这个错误消息让我感到困惑:我有理由相信如果我的环境变量设置不正确,我会收到这个错误消息,但我有理由相信我的环境变量设置正确。我有理由相信,如果我的环境变量引用了一个未运行的 ssh-agent 实例,我可能会收到此错误消息,但我恰好有一个 ssh-agent 实例正在运行,并且它与我在环境变量中看到的匹配. 这是可重复的。我已经启动(并最终关闭)了几十个 ssh-agent 实例,使用诸如ssh-agent > ~/.ssh/environment; . ~/.ssh/environment,eval `ssh-agent`等等之类的技术ssh-agent bash......我无法让 msys ssh-add 连接到 msys ssh-agent。

bash-3.1$ ps | grep ssh-agent
    10304       1   10304      10304    ?  500 09:01:24 /bin/ssh-agent
bash-3.1$ bash -c 'set | grep SSH_A'
BASH_EXECUTION_STRING='set | grep SSH_A'
SSH_AGENT_PID=10304
SSH_AUTH_SOCK=/tmp/ssh-oAFwa11048/agent.11048
bash-3.1$ time ssh-add -L
Could not open a connection to your authentication agent.

real    0m10.730s
user    0m0.000s
sys     0m0.015s
bash-3.1$ wc /tmp/ssh-oAFwa11048/agent.11048
      0       3      52 /tmp/ssh-oAFwa11048/agent.11048
bash-3.1$ cat /tmp/ssh-oAFwa11048/agent.11048; echo
!<socket >59261 060A4541-9831B739-519220DE-57936738
bash-3.1$

我现在还不关心编写任何脚本——我相信如果我可以从命令行让 ssh-add 工作,我就可以编写脚本......

另请注意,ssh-add 使用的 10 秒实时发生在它发出“无法打开...”消息之前。

而且,我在这里使用的是当前版本的 Windows 7。而且,我也安装了 cygwin,但是当我使用 msys 时它不在我的路径中。任务管理器显示我只有一个 ssh-agent 实例正在运行。正在运行的 ssh-agent 是 msys ssh-agent,它是从 msysgit 的 bash 提示符启动的(路径中没有来自 cygwin 的任何内容)。ssh 密钥是使用 cygwin 的 ssh-keygen 生成的,但表面测试表明 msys ssh 实用程序对该文件没有问题。ssh-agent 没有给我任何错误消息或警告。

我可以使用 cygwin 的 ssh-agent,但是混合 cygwin 和 msys 会引入其他复杂性(您可以从我对这个问题的描述中看到其中的一些),我试图让 msys 在没有任何来自 cygwin 的情况下工作。

我需要做什么才能找出为什么 msys ssh-add 不起作用?(或者:我需要做什么才能让 ssh-add 正常工作?)

4

1 回答 1

5

我不能告诉你很多关于为什么和如何,但我可以告诉你我尝试了什么以及最终解决了它。在 git bash 中:

exec ssh-agent bash

然后(在更改后的外壳中):

ssh-add

这在一定程度上奏效了,我只需要输入一次密码,但我失去了正常的外观。经过一番搜索后,我在这个 Github 帮助页面上找到了一个 .bashrc 脚本。

于 2012-03-13T19:51:53.217 回答