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

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

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

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

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

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


person user1104539    schedule 18.12.2011    source источник


Ответы (1)


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

exec ssh-agent bash

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

ssh-add

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

person HulkingUnicorn    schedule 13.03.2012