SSH tunnel para permitir tráfego ssh: conexão sempre recusada

1

Eu tenho acesso a dois servidores no trabalho. O servidor A hospeda repositórios git e é visível externamente. Eu gostaria de poder clonar um repositório no Servidor B que está hospedado no Servidor A.

Atualmente, não consigo fazer ssh do Servidor B para o Servidor A. Estou supondo que o firewall esteja bloqueando isso.

Por isso, estou tentando criar um túnel ssh após as pesquisas que encontrei, mas até agora sem sucesso.

Do shell do servidor A:

$ ssh -L 1234:localhost:22 user@server_b

Isso me loga com sucesso no Servidor B. De lá, não consigo fazer nada usando ssh :

$ ssh user@localhost
$ user@localhost's password: <entered correctly>
$ Permission denied, please try again.

$ ssh user@localhost -p 1234
$ ssh: connect to host localhost port 1234: Connection refused

Tentando clonar

$ git clone ssh://user@localhost:1234/path/to/repo.git/
$ ssh: connect to host localhost port 1234: Connection refused
$ fatal: The remote end hung up unexpectedly

Meu comando de encapsulamento inicial está incorreto? Ou posso precisar que o administrador da rede abra alguma coisa no firewall?

    
por circuitBurn 17.04.2013 / 18:49

1 resposta

2

Você precisa criar um túnel reverso com -R em vez de -L .

Na sua máquina local, use

ssh -R 1234:server_a:22 user@server_b

Você receberá um shell em server_b . Se você fizer

ssh -p 1234 user@localhost

neste shell, isso conectará você à porta 22 de server_a , encapsulada através de sua máquina local.

Depois disso, o seu comando git clone deve funcionar.

    
por 17.04.2013 / 19:06