Próbuję wdrożyć projekt za pomocą Capistrano. Moja maszyna programistyczna działa pod kontrolą systemu Windows 7; serwer, na którym działam, to Linux.Wdrażanie Capistrano w systemie Windows przy użyciu opcji forward_agent: "Błąd odczytu długości odpowiedzi z gniazda uwierzytelniania."
W skrypcie deploy.rb się, co następuje set:
ssh_options[:forward_agent] = true
Skrypt Capistrano zaczyna się uruchamiając polecenie git lokalnie, w którym momencie mam zapytany o haśle dla mojego klucza SSH:
* executing `deploy:update_code'
executing locally: "git ls-remote [email protected]:pathto/gitproject.git develop"
Enter passphrase for key '/c/Users/Sam/.ssh/id_rsa':
command finished in 6999ms
(usunąłem prawdziwą ścieżkę git z powyższym, jak można prawdopodobnie zobaczyć.)
wejdę moje hasło i to działa dobrze. Jednak Capistrano następnie próbuje zrobić coś podobnego na zdalnej maszynie (przemianowany na staging-server.com w poniżej) i pojawia się błąd - zobaczyć ostateczną linię tego ekstraktu:
[staging-server.com] executing command
[staging-server.com] sh -c 'git clone [email protected]: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.
Jeśli komentarz out linii forward_agent w deploy.rb, ta instalacja się powiedzie, prawdopodobnie za pomocą klucza z samego serwera wdrażania.
Wydaje się, że mój klucz SSH działa - w końcu działa początkowe polecenie git, mogę go użyć w git push/pull, a ssh -T [email protected] zgłasza, co powinien (zgodnie z zaleceniami na github:help).
Założono, że mój komputer nie wyświetlał kluczy na żądanie zdalnego serwera. Po bardzo wielu Googlingach znalazłem zalecenia na http://hustoknow.blogspot.co.uk/2011/06/ssh-agent-and-agent-forwarding-on.html, które wyjaśniają, jak uruchomić ssh-agent podczas uruchamiania. Robiłem to wszystko z wiersza poleceń, więc przełączyłem się na git-bash i skonfigurowałem mój .bash_profile, aby uwzględnić skrypt, z którym się połączyłem.
Po dodaniu tego, zostałem poproszony o podanie hasła podczas pierwszego uruchomienia git bash i mogłem wtedy połączyć się z github używając klucza SSH (bez konieczności ponownego wpisywania hasła). Ponadto ssh-add -L poinformował, że rzeczywiście dostępny jest klucz. Wszystko wydaje się więc poprawnie ustawione!
Jednak nadal otrzymuję komunikat "Błąd odczytu długości odpowiedzi z gniazda uwierzytelniania". błąd.
Wszelkie pomysły? Działa to dla mojego kolegi (ten sam plik deploy.rb), którego maszyną programistyczną jest Linux.
mam dokładnie problem z współpracownik próbując wdrożyć od okien. Działa dobrze dla mnie w Mac OS X 10.7 – kayaker243