SSH LocalForward - Hosts de salto

2

Atualmente, estou configurando meu sistema Linux para facilitar algumas tarefas diárias. Eu gostaria de configurar meu SSH para poder pular hosts usando o terminal. Eu li sobre LocalForward, bem como ProxyJump. O objetivo é conectar-se ao primeiro servidor, encapsular a conexão e, em seguida, conectar-se ao segundo servidor (já que o segundo servidor está em uma zona que só posso acessar a partir do primeiro servidor).

Agora, o que eu fiz foi o seguinte snippet dentro do meu arquivo ~ / .ssh / config:

Host tunnel
    HostName <firstServer>
    IdentityFile ~/.ssh/example.key
    LocalForward 9906 <secondServer>:22
    User helloWorld

Se eu me conectar agora ao servidor usando "ssh tunnel", posso conectar com sucesso ao primeiro servidor. Se eu agora usar o telnet para verificar o segundo servidor usando "telnet secondServer 9906", posso ver que o SSH está sendo executado nele. Se eu tentar agora o SSH no segundo servidor usando "ssh localhost: 9906" recebo a informação de que o nome do host não pôde ser resolvido (a mesma coisa para 127.0.0.1:9906).

Depois eu li sobre a opção "ProxyJump" e tentei o seguinte:

Host tunnel
    HostName <firstServer>
    ProxyJump <secondServer>:22
    User helloWorld

No entanto, a conexão nunca passa. Ele fica preso em "conexão para".

Eu estou sentindo falta de algo óbvio aqui? Talvez eu entenda mal o conceito básico de toda a coisa de encaminhamento de SSH? Estou acostumado a usar o Putty, mas recentemente dei o salto para o Linux e gostaria de configurar tudo apropriadamente.

    
por youngStupidQuestionGod 05.07.2017 / 10:25

2 respostas

3

Este ~ / .ssh / config irá ProxyJump através de jump para o alvo , e ligará uma porta até alvo :

Host jump
  HostName      <server-ip>
  User          user-name
  IdentityFile  ~/.ssh/key.pem
  LocalForward  8888 localhost:8888
Host target
  HostName      <server-ip>
  User          user-name
  IdentityFile  ~/.ssh/key.pem
  ProxyJump     jump
  LocalForward  8888 localhost:8888

Uso:   

  • alvo ssh
  •   
  • ssh -v alvo # ver depuração detalhada
  •     
    por 17.01.2018 / 14:36
    2

    Usamos esse oneliner em nossas equipes:

    $ ssh zone_user@zone_host -o ProxyCommand="ssh -W %h:%p proxy_user@proxy_host"
    

    Notas:

    1. Certifique-se de que proxy_user@proxy_host e zone_user@zone_host tenham sua chave privada em ~/.ssh/authorized_keys .
    2. Você não precisa alocar e "encapsular" portas extras para encaminhar o SSH pelo SSH.
    3. Eu não recomendaria mexer muito com ~/.ssh/config , é propenso a erros e não é adequado para documentação. Melhor compartilhar oneliners apenas como o acima.

    Felicidades!

        
    por 05.07.2017 / 11:35