ssh port forwarding através de um pseudo-terminal

0

Aqui está uma situação:

Eu faço todo o meu trabalho em um Mac.

  1. There's a certain linux server 'server01' that provides access to another linux server 'server02' via a pseudo terminal

    So, to ssh into 'server02', I do this from my mac:

    ssh -t server01 'inline server02'
    
  2. Then it asks me for a password to 'server01'; I enter it and that logs me into 'server02'. Now, I am on the 'server02' terminal.

  3. From 'server02' I can access the mysql database that is sitting on 'server03' using the following mysql command:

    mysql --host=server03 --port=4201 --user=myuser --password=mypass mydb
    
  4. Neither 'server01' nor 'server02' or my mac have direct SSH access to 'server03'

Agora, quero acessar o mysql em ' server03 ' do meu Mac diretamente por meio de algum tipo de encaminhamento de porta. Então, se eu digitar o comando abaixo no meu terminal mac, ele deve me conectar ao banco de dados mysql em ' server03 ':

mysql --host=localhost --port=4201 --user=myuser --password=mypass mydb

Existe uma maneira de fazer isso? Qualquer ajuda é muito apreciada.

    
por user3142747 04.11.2015 / 13:46

1 resposta

0

Configure uma cadeia de encaminhamentos. Primeiro, conecte-se ao servidor1 e adicione um encaminhamento para conexões SSH ao servidor2:

mac% ssh -f -N -L 10022:server2:22 server1

(As opções -f -N farão com que seja executado em segundo plano.)

Em seguida, conecte-se ao servidor 2 por meio desse encaminhamento e adicione um redirecionamento para conexões MySQL ao servidor 3:

mac% ssh -f -N -L 14201:server3:4201 -p 10022 -o HostkeyAlias=server2 localhost

(Você está se conectando a localhost port 10022 , e o encaminhamento anterior permite que você atinja o server2. HostkeyAlias é opcional, apenas alguma paranoia.)

Finalmente, conecte-se ao servidor 3:

mac% mysql --host=localhost --port=14201 ...
    
por 04.11.2015 / 13:57