Eu gostaria de me conectar a um MySQL remoto do meu host, mas o host está por trás de um proxy ssh, como este.
Eu tenho 3 hosts neste problema
- A: minha máquina local (que pode ssh para B)
- B: Máquina intermediária que pode SSH para C
- C: um servidor remoto executando o MySQL e permite apenas conexões de localhost (grant)
Eu uso ~ / .ssh / config para me permitir ssh diretamente de A para C (usando B como proxy).
Host B
ProtocolKeepAlives 30
HostName hostnameofB
Host C
ProtocolKeepAlives 30
ProxyCommand ssh -q B nc -q0 hostnameofC 22
LocalForward 3336 localhost:3306
Port 21343
Eu abro um ssh de A para C com -vvv e vejo isto:
debug1: Local connections to LOCALHOST:3336 forwarded to remote address localhost:3306
Eu então tento acessar o MySQL de A:
mysql -uMyUsername -pMyPassword DatabaseName -P3336 -h127.0.0.1
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
(se eu tentar usar -hlocalhost, ele tentará efetuar login no meu servidor MySQL local, mesmo se eu usar portas diferentes)
na minha janela SSH -vvv também vejo isto:
client-session (t4 r0 i0/0 o0/0 fd 7/8 cc -1)
não há registros no servidor C MySQL.
alguma boa sugestão?