Como usar o ssh para uma máquina remota inacessível através de tunelamento através de um servidor que todos podem acessar?

4

Máquinas:

  • Vamos ligar para minha máquina macbook .
  • Eu tenho um servidor em interwebs tah. Chame de servidor .
  • Eu tenho um Mac Mini em outro lugar que eu posso acessar via compartilhamento de tela do iChat. Vamos chamar de mini .

Alcance:

  • servidor não pode ver macbook nem mini .
  • macbook pode ver servidor , mas não mini .
  • mini pode ver servidor , mas não macbook .

O compartilhamento de tela é lento. Eu quero uma conexão SSH para mini . Uma conexão direta é impossível por causa de roteadores, NAT, etc.

O que eu quero fazer é conectar macbook e mini ao servidor via SSH, criando os túneis apropriados, para que de < strong> macbook Eu posso executar um comando ssh … para conectar ao mini através do tunelamento da conexão através do servidor .

Então, minha pergunta é: que comandos eu tenho que executar, em quais máquinas, para fazer isso funcionar?

Para simplificar, use servidor , mini , macbook como nomes de host nas suas respostas.

    
por kch 02.08.2010 / 08:53

3 respostas

6

Apenas um túnel ssh é necessário. Do mini:

ssh -N -R 0.0.0.0:8022:localhost:22 serverUser@server

Agora você pode se conectar do macbook ao servidor com ssh -p 8022 miniUser@server

Certifique-se de ter GatewayPorts definido como yes no /etc/ssh/sshd_config do servidor.

Além disso, você pode querer definir algumas coisas em ~ / .ssh / config:

Host gate.mini
    HostName server
    Port 8022
    HostKeyAlias mini

Isso permite que você faça o ssh [email protected] mais coerente e, ao mesmo tempo, não seja incomodado com a incompatibilidade de impressões digitais do servidor.

    
por 05.08.2010 / 11:49
4

No Mac Mini:

ssh -R 1234:localhost:22 serverUser@server

Isso encaminhará as conexões para a porta 1234 do servidor para a porta 22 no Mac Mini.

Em seguida, no MacBook:

ssh -L 1235:localhost:1234 serverUser@server

Isto encaminhará as conexões para a porta 1235 no MacBook para a porta 1234 no servidor (que será então encaminhado para o Mac Mini pelo comando acima).

Finalmente, para obter sua conexão real, no MacBook:

ssh -p 1235 miniUser@localhost

Que se conecta à porta 1235 no MacBook, que é encaminhada para a porta 1234 no servidor, que é encaminhada para a porta 22 no Mac Mini. As portas 1234 e 1235 podem ser configuradas para mais ou menos o que você quiser - e pode ser o mesmo (usei diferentes números para tornar a explicação mais clara). Da mesma forma, a porta 22 deve ser alterada se o SSH no seu Mac Mini estiver escutando em uma porta diferente.

    
por 02.08.2010 / 11:12
0

Você pode encapsular qualquer comando por meio de uma sessão ssh. Isso significa que você também pode tunelar um comando ssh através do ssh.

Isso ficaria assim:

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

Isto abre uma sessão ssh para servidor e a partir daí abre instantaneamente uma segunda sessão ssh para mini . Com um túnel ssh isto deve funcionar sem problemas da sua máquina macbook . Pelo menos, dado que mini é acessível a partir do servidor .

Requisitos:

  • ssh no macbook
  • servidor ssh e cliente ssh no servidor
  • servidor ssh e cliente ssh em mini

Pode ser interessante criar um alias para que você não precise digitar isso toda vez que quiser se conectar. Pense também em menos conexão de senha para servidor para que você não tenha que digitar 2 senhas para esta conexão em túnel.

    
por 02.08.2010 / 09:33