Aqui está uma situação:
Eu faço todo o meu trabalho em um Mac.
Existe um certo servidor Linux 'servidor01'que fornece acesso a outro servidor Linux'servidor02'através de um pseudo terminal
Então, para entrar em 'servidor02', eu faço isso no meu mac:
ssh -t server01 'inline server02'
Então ele me pede uma senha para 'servidor01'; Eu entro e isso me conecta 'servidor02'. Agora, estou no 'servidor02' terminal.
De 'servidor02'Posso acessar o banco de dados mysql que está em'servidor03'usando o seguinte comando mysql:
mysql --host=server03 --port=4201 --user=myuser --password=mypass mydb
Nenhum 'servidor01' nem 'servidor02'nem meu mac tem acesso SSH para'servidor03'
Agora, quero acessar o mysql em 'servidor03'do meu mac diretamente através de algum tipo de encaminhamento de porta. Então, se eu digitar o comando abaixo no meu terminal mac, ele deverá me conectar ao banco de dados mysql em 'servidor03':
mysql --host=localhost --port=4201 --user=myuser --password=mypass mydb
Existe uma maneira de fazer isso? Qualquer ajuda é muito apreciada.
Responder1
Se você puder fazer ssh para server02 a partir do server01, você pode tentar
ssh -t -L server02:4201 server01 'ssh -N -L server03:4201 server02'
ele irá encadear a conexão
localhost:4201 -> servidor02:4201 -> servidor03:4201
apenas se conecta localmente à porta4201no Mac
É melhor usar autenticação de chave e agente ssh para evitar digitar senhas.