我已经安装了msysgit: Git-1.7.8-preview20111206.exe,下载地址为http://code.google.com/p/msysgit/downloads/list (编辑:我还安装了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会引入其他复杂性(您可以从我对此问题的描述中看到一些),我正在尝试在没有任何来自Cygwin的情况下使msys工作。
我需要做什么才能找出为什么msys ssh-add不起作用? (或:我需要做什么才能使ssh-add正常工作?)