como fazer trabalho ssh encadeado com git

2

Estou tentando contornar um problema bobo de firewall. Eu estou tentando encadear o acesso ssh para git através de um proxy ssh:

~ / git-chain:

#!/bin/bash
ssh hosticangetto ssh $*
# End

E então:

$ export GIT_SSH=~/git-chain
$ git clone ssh://[email protected]/somerepo.git

E, [2012-02-07T12:50:21.434913 #28359] ERROR -- : git command not recognized
fatal: The remote end hung up unexpectedly

os argumentos sendo passados para o meu script são:

[email protected] git-upload-pack 'somerepo.git'

Eu verifiquei as chaves do hosticangetto para a loja do repositório git e está tudo ok.

Não sei por que isso falha. Eu fiz esse tipo de coisa com mercurial antes com mercurial-e switch.

    
por nic ferrier 07.02.2012 / 14:08

2 respostas

3

Adicione essas linhas ao seu ~/.ssh/config (ou crie esse arquivo com essas linhas, se ainda não existir):

Host somerepostore.com
    ProxyCommand ssh -W %h:%p hosticangetto

Em seguida, desative GIT_SSH.

Isto diz ssh para ssh usando hosticangetto como proxy. Isso é melhor do que a sua solução porque, na sua solução, os pacotes são descriptografados no hosticangetto e, em seguida, criptografados novamente para somerepostore.com no host remoto. Usando um comando proxy como este significa que os pacotes são criptografados para somerepostore.com em sua máquina local e esses pacotes criptografados são passados através de hosticangetto.

    
por 07.02.2012 / 16:52
0

Eu acho que você precisa fazer algo com o TTY.

Isso não funcionou:

ssh server1 ssh server2

Apenas fica pendurado lá.

Isso parece ter funcionado:

ssh -t server1 ssh server2

Olhando para a saída detalhada com ssh -v server1 ssh server2 , parece que o primeiro / ssh externo é concluído e chego ao server1, mas não executo o interior / segundo ssh para o server2.

    
por 07.02.2012 / 15:32