Развертывание Capistrano из Windows с использованием параметра forward_agent: чтение длины ответа из сокета аутентификации".

Я пытаюсь развернуть проект с помощью Capistrano. Моя машина для разработки работает под управлением Windows 7, сервер, на который я развертываю, — Linux.

В сценарии deploy.rb установлено следующее:

ssh_options[:forward_agent] = true

The Capistr Сценарий ano начинается с локального запуска команды git, после чего у меня запрашивается парольная фраза для моего ключа SSH:

* executing `deploy:update_code'
executing locally: "git ls-remote git@github.com:pathto/gitproject.git develop"
Enter passphrase for key '/c/Users/Sam/.ssh/id_rsa':
command finished in 6999ms

(я удалил реальный путь git из приведенного выше, как вы, вероятно, видите.)

Я ввожу свою парольную фразу, и это работает нормально. Однако затем Capistrano пытается сделать что-то подобное на удаленной машине (переименованной в staging-server.com ниже) и получаю сообщение об ошибке — см. последнюю строку этого фрагмента:

[staging-server.com] executing command
[staging-server.com] sh -c 'git clone git@github.com:pathto/gitproject.git /home/perstest/releases/20120412074500 && cd
/home/perstest/releases/20120412074500 && git checkout -b deploy 50eaf06d06d66fd20c3e55038276f420d8c308a8 && (echo 50eaf06d06d66fd20c3e55038
276f420d8c308a8 > /home/perstest/releases/20120412074500/REVISION)'
 ** [staging-server.com :: out] Initialized empty Git repository in /home/perstest/releases/20120412074500/.git/
 ** [staging-server.com :: err] Error reading response length from authentication socket.

Если я закомментирую строку forward_agent в файле deploy.rb, эта установка завершится успешно, предположительно с использованием ключа самого сервера развертывания.

Похоже, мой ключ SSH работает — в конце концов, начальная команда git работает, я могу использовать ее в git push/pull, а ssh -T (скрытый) сообщает, что должен (как рекомендовано на github:help ).

Я предположил, что моя машина не выдает ключи, когда их запрашивает удаленный сервер. После огромного количества поисков в Google я нашел рекомендации по адресу http://hustoknow.blogspot.co.uk/2011/06/ssh-agent-and-agent-forwarding-on.html, которые объясняют как запустить ssh-агент при запуске. Я делал все это из командной строки, поэтому затем переключился на git-bash и настроил свой .bash_profile для включения скрипта, на который я ссылался.

После этого при первом запуске git bash у меня запрашивалась фраза-пароль, после чего я мог подключиться к github с помощью ключа SSH (без повторного ввода фразы-пароля). Кроме того, ssh-add -L сообщил, что ключ действительно доступен. Так вроде все правильно настроил!

Однако я по-прежнему получаю сообщение «Ошибка чтения длины ответа из сокета аутентификации». ошибка.

Есть идеи? Это работает для моего коллеги (тот же файл deploy.rb), чьим компьютером для разработки является Linux.

12
задан Sam 12 April 2012 в 12:49
поделиться