proxy SSH e MySQL na terceira máquina

1

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?

    
por Sverre 09.07.2012 / 07:27

1 resposta

0

Parece-me que seu comando mysql executado no host A tenta se conectar à porta 3366 em A; Eu não vejo nada encaminhando A: 3366 em qualquer lugar. Tente adicionar uma regra de encaminhamento de A para B, ou se não houver filtragem feita, você pode simplesmente mudar o seu mysql para acertar o host B ao invés de "-h127.0.0.1" que se refere a A.

    
por 11.07.2012 / 19:38