Capistrano-Bereitstellung unter Windows mit der Option forward_agent: "Fehler beim Lesen der Antwortlänge vom Authentifizierungssocket."

Ich versuche, ein Projekt mit Capistrano bereitzustellen. Auf meinem Entwicklungscomputer wird Windows 7 ausgeführt. Der Server, auf dem ich einsetze, ist Linux.

Im Skript deploy.rb wird Folgendes festgelegt:

<code>ssh_options[:forward_agent] = true
</code>

Das Capistrano-Skript startet mit der lokalen Ausführung eines git-Befehls. Zu diesem Zeitpunkt werde ich zur Eingabe der Passphrase für meinen SSH-Schlüssel aufgefordert:

<code>* 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
</code>

(Ich habe den echten Git-Pfad von oben entfernt, wie Sie wahrscheinlich sehen können.)

Ich gebe mein Passwort ein und das funktioniert einwandfrei. Capistrano versucht dann jedoch, auf dem Remotecomputer etwas Ähnliches zu tun (im Folgenden umbenannt in staging-server.com), und es wird eine Fehlermeldung angezeigt - siehe letzte Zeile dieses Extrakts:

<code>[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.
</code>

Wenn ich die Zeile forward_agent in deploy.rb auskommentiere, ist die Installation erfolgreich, wobei vermutlich der Schlüssel vom Deployment Server selbst verwendet wird.

Mein SSH - Schlüssel scheint zu funktionieren - schließlich funktioniert der anfängliche Befehl "git". Ich kann ihn in "git push / pull" verwendengithub: hilfe).

Ich nahm an, dass mein Computer keine Schlüssel bereitstellt, als ich vom Remote-Server dazu aufgefordert wurde. Nach einer Menge Googeln fand ich die Empfehlungen unterhttp://hustoknow.blogspot.co.uk/2011/06/ssh-agent-and-agent-forwarding-on.html, die erklären, wie man ssh-agent beim Start zum Laufen bringt. Ich habe das alles von der Eingabeaufforderung aus gemacht, also bin ich zu git-bash gewechselt und habe mein .bash_profile so eingerichtet, dass es das Skript enthält, mit dem ich verlinkt bin.

Nachdem ich dies hinzugefügt hatte, wurde ich beim ersten Starten von git bash zur Eingabe meiner Passphrase aufgefordert. Anschließend konnte ich mit dem SSH-Schlüssel eine Verbindung zu github herstellen (ohne die Passphrase erneut eingeben zu müssen). Darüber hinaus berichtete ssh-add-L, dass tatsächlich ein Schlüssel verfügbar war. Also scheint alles richtig eingestellt zu sein!

Ich erhalte jedoch weiterhin die Meldung "Fehler beim Lesen der Antwortlänge vom Authentifizierungssocket". Error.

Irgendwelche Ideen? Dies funktioniert für meinen Kollegen (dieselbe deploy.rb-Datei), dessen Entwicklungsmaschine Linux ist.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage