如何隔离msysgit附带的msys实现中提供的ssh-add/ssh-agent的问题?

use*_*539 5 msys msysgit windows-7 ssh-agent

我从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-添加连接到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$
Run Code Online (Sandbox Code Playgroud)

我并不关心任何脚本编写 - 我相信如果我能从命令行获得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正常工作?)

Hul*_*orn 5

我不能告诉你为什么和为什么,但我可以告诉你我尝试了什么,最终解决了什么.在git bash中:

exec ssh-agent bash
Run Code Online (Sandbox Code Playgroud)

然后(在更改的shell中):

ssh-add
Run Code Online (Sandbox Code Playgroud)

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