我已经从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 正常工作?)