Encaminhar o SSH pelo túnel SSH

21

Minha situação:

Eu (localhost) - > Servidor A (ip: 100.100.100.100) = > (servidor B (ip: 192.168.25.100), servidor ....)

Eu sou capaz de SSH no servidor, uma vez que tem um verdadeiro ip se eu, então, quiser se conectar ao servidor b, eu faria o servidor ssh b com o seu ip (192.168.25.100)

exemplo:

do meu pc:

ssh [email protected]

depois em 100.100.100.100,

ssh [email protected]

isso me levaria ao servidor B com ssh

e se eu quiser me conectar ao servidor b diretamente? como posso fazer isso?

exemplo:

do meu oc:

[email protected]

Eu tentei o seguinte:

ssh -L 22:localhost:22 [email protected]

sem sucesso

    
por tom91136 15.12.2011 / 12:44

5 respostas

26

Seu problema é ligar um ouvinte ao localhost: 22; já existe um sshd ouvindo isso. O tunelamento de uma conexão ssh através de uma conexão ssh é completamente legal, e eu faço isso o tempo todo, mas você precisa escolher portas não utilizadas para seus ouvintes de encaminhamento.

Tente

me% ssh [email protected] -L 2201:192.168.25.100:22

então

me% ssh localhost -p 2201

Você deve acabar no servidor B (a menos que algo já esteja vinculado a mim: 2201, nesse caso, escolha outra porta).

    
por 15.12.2011 / 12:49
15

Você não precisa usar o encaminhamento de porta ssh para ssh em um computador interno por meio de um proxy. Você pode usar o recurso ssh de executar um comando no primeiro servidor ao qual você se conecta para fazer o ssh em um terceiro computador.

ssh -t [email protected] ssh [email protected]

A opção -t força o ssh a alocar uma pseudo-tty para que você possa executar um comando interativo.

Isso também funciona com as chaves ssh. Se você tiver sua chave privada e pública na máquina A e sua chave pública nos arquivos de chaves autorizadas nas máquinas B e C, poderá usar a opção -A para encaminhar a conexão do agente de autenticação.

    
por 15.12.2011 / 16:29
10

Eu usei uma solução diferente. Eu usei uma opção ProxyCommand (aqui em ~/.ssh/config ):

Host myinsidehost1 myinsidehost2 myinsidehost3
ProxyCommand ssh externalhost ssh %h sshd -i

Isso não configura nenhum túnel de porta a porta; em vez disso, tunela o ssh usando stdin / out padrão. Esse método tem uma desvantagem de que existem três conexões ssh para autenticar. Mas para se conectar ao host interno, basta digitar:

ssh myinsidehost2

... então você não precisa se preocupar em escolher qualquer IP para esse túnel.

    
por 15.12.2011 / 16:04
5

de acordo com a página man do ssh, ProxyCommand é o método correto

sendo a sintaxe:

ProxyCommand ssh -W %h:%p user@jumphost 2> /dev/null
    
por 21.07.2015 / 04:44
2

A partir do OpenSSH 7.3 (final de 2016), a maneira mais fácil é a configuração ProxyJump . No seu ~/.ssh/config :

Host B
  ProxyJump A

Ou na linha de comando, -J B .

    
por 17.01.2018 / 22:41