2012-04-12 6 views
12

Sto provando a distribuire un progetto utilizzando Capistrano. La mia macchina di sviluppo sta usando Windows 7; il server su cui sto distribuendo è Linux.Implementazione di Capistrano da Windows usando l'opzione forward_agent: "Errore nella lettura della lunghezza della risposta dal socket di autenticazione."

Nello script deploy.rb, è impostato il seguente:

ssh_options[:forward_agent] = true 

Lo script Capistrano inizia eseguendo un comando git a livello locale, a quel punto sono richiamato per la passphrase per la mia chiave SSH:

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

(ho rimosso il percorso git reale dal di cui sopra come probabilmente si può vedere.)

inserisco il mio passphrase e questo funziona bene. Tuttavia, Capistrano poi cerca di fare qualcosa di simile sulla macchina remota (rinominato staging-server.com nel seguito) e ottengo un errore - vedere la riga finale di questo estratto:

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

Se io commento la riga forward_agent in deploy.rb, questa installazione ha esito positivo, presumibilmente utilizzando la chiave dal server di distribuzione stesso.

La mia chiave SSH sembra funzionare - dopo tutto, il comando funziona git iniziali, posso utilizzarlo in git push/pull e ssh -T [email protected] riporta quello che dovrebbe (come consigliato su github:help).

Supponevo che il mio computer non servisse le chiavi quando richiesto dal server remoto. Dopo un sacco di ricerche su Google, ho trovato i consigli allo http://hustoknow.blogspot.co.uk/2011/06/ssh-agent-and-agent-forwarding-on.html, che spiegano come avviare ssh-agent all'avvio. Stavo facendo tutto questo dal prompt dei comandi, quindi sono passato a git-bash e ho impostato il mio .bash_profile per quello per includere lo script a cui mi sono collegato.

Dopo aver aggiunto questo, mi è stata richiesta la mia passphrase al primo avvio di git bash e quindi ho potuto connettermi a github usando la chiave SSH (senza dover reinserire passphrase). Inoltre, ssh-add -L ha riportato che c'era effettivamente una chiave disponibile. Quindi tutto sembra essere impostato correttamente!

Tuttavia, viene ancora visualizzato "Errore durante la lettura della lunghezza della risposta dal socket di autenticazione". errore.

Qualche idea? Funziona per il mio collega (stesso file deploy.rb) il cui computer di sviluppo è Linux.

+0

ho il problema esatto con un collega di tentare di distribuire dalle finestre. Funziona bene per me in Mac OS X 10.7 – kayaker243

risposta

4

Questo è un bug da net-ssh come described here

+2

Non sono sicuro che l'errore descritto in quella pagina sia esattamente uguale a quello che vedo, i messaggi di errore sono diversi. Tuttavia, quella pagina fa riferimento a [un problema archiviato su agent forwarding e Windows] (https://github.com/net-ssh/net-ssh/issues/55), quindi se mai dovesse essere risolto probabilmente sarebbe ordinare le cose anche per la mia situazione, anche se l'errore specifico è diverso. Ora sono passato a Linux (per altri motivi), quindi questo è un modo per risolvere il problema ;-) – Sam

+0

Apparentemente è stato risolto ora: [Supporto pageant fisso] (https://github.com/net-ssh/net -ssh/tirare/140) – StormPooper

Problemi correlati