Как изолировать проблемы с ssh-add / ssh-agent, предоставляемым в реализации msys, которая поставляется с msysgit? - PullRequest
5 голосов
/ 18 декабря 2011

Я установил 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 подключиться к msysssh-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 работать из командной строки, я смогу его написать ...

И обратите внимание также, что 10 секунд реального времени, которые использует ssh-add, происходит до того, как он выдаст сообщение «Не удалось открыть ...».

И я использую текущую версию Windows7 здесь.Кроме того, у меня также установлен Cygwin, но это не в моем пути, когда я использую msys.Диспетчер задач показывает мне, что у меня работает только один экземпляр ssh-agent.Ssh-agent, который работает - это sys-агент msys, и он был запущен из командной строки msysgit (без указания пути в cygwin).Ключ ssh был сгенерирован с использованием cygwin ssh-keygen, но поверхностное тестирование показывает, что утилиты msys ssh не имеют проблем с файлом.ssh-agent не выдает мне сообщений об ошибках или предупреждений.

Я могу использовать ssh-agent cygwin, но при смешивании cygwin и msys возникают другие сложности (и некоторые из них вы можете увидеть только из моего описания этой проблемы).), и я пытаюсь заставить работать msys без чего-либо от cygwin.

Что мне нужно сделать, чтобы выяснить, почему не работает msys ssh-add?(Или: что мне нужно сделать, чтобы этот ssh-add работал правильно?)

1 Ответ

5 голосов
/ 13 марта 2012

Я не могу рассказать вам много о том, почему и как, но я могу рассказать вам, что я пытался и что, наконец, решило это.В git bash:

exec ssh-agent bash

Затем (в измененной оболочке):

ssh-add

Это сработало, мне нужно было набрать только одну фразу-пароль, но я потерялсмотреть.После еще одного поиска я нашел скрипт .bashrc на этой странице справки Github .

...