Como criar um túnel ssh entre dois computadores?

0

Digamos que há três computadores, A, B e C.

O computador A precisa se conectar ao computador C na porta 9103.

No entanto, não é capaz de alcançar C. Mas pode chegar ao computador B, que pode chegar ao computador C.

Eu sei que isso pode ser feito com túneis ssh. No entanto, o que torna isso complicado é que o computador A não pode ssh no computador B por causa de um firewall, mas B pode ssh no computador A. Portanto, um túnel SSH reverso pode ser criado a partir de B para que A possa alcançar B.

Existe uma maneira de um túnel ser criado no computador B para que o computador A possa alcançar o computador C passando pelo computador B?

    
por LINUX G33NYUS 16.04.2018 / 23:28

2 respostas

1

Em B, crie um túnel reverso de A: 59103. O ponto final relativo a B é C: 9103.

ssh -R 59103:C:9103 A

Altere o número da porta em A de seu 59103 para algo que seja adequado.

Esta solução leva sua afirmação de que B pode alcançar C no valor de face. A conexão de B para C não é protegida com ssh .

    
por 17.04.2018 / 00:04
0

Se você quiser ser um pouco extravagante, pode estabelecer um túnel nc sob demanda (se nc estiver instalado em B), com algo como o seguinte (do host A):

$ ssh C -oProxyCommand='ssh -q B nc C 9103'

Esse comando de proxy significa ssh para B e executa nc conectando à porta 9103 em C como encapsulamento para a conexão ssh de A.

Se é algo que você sempre faz, você deve colocá-lo em ~/.ssh/config no host A, com o seguinte:

host C
    ProxyCommand ssh -q B nc C 9103

Em seguida, a linha de comando é simplesmente:

$ ssh C
    
por 17.04.2018 / 03:39