Embora não seja uma correspondência exata, aqui estão algumas outras perguntas relacionadas:
- como acessar um servidor ssh que não pode aceitar conexões de entrada
- estabelecendo uma conexão ssh entre máquinas atrás de firewalls
Para resolver seu problema específico, eu adicionaria o seguinte ao seu arquivo .ssh/config
em "A":
Host B
User abc
ForwardAgent yes
Host C
User root
LocalForward 3306:localhost:3306
ProxyCommand ssh -A B -p 22 -W %h:%p
#ProxyCommand ssh -A B -p 22 nc %h %p
Com isso, você deve poder usar ssh C
para:
- pegue um shell em C, pule em B e
- estabeleça uma porta local (para hospedar A) para o seu ambiente de trabalho mysql.
Uma vez que a conexão é estabelecida, você pode apontar seu workbench mysql local (no A) em localhost: 3306. Se você tiver alguma outra instância do mysql sendo executada localmente em A, escolha uma porta diferente na opção de configuração LocalForward
e conecte-se a ela.
Observe que há duas opções para o ProxyCommand passar por B para chegar a C. A alternativa usa nc
em vez da opção -W
para ssh
, pois a opção -W
não foi adicionada. ssh versão 5.3 (IIRC).
Você não precisa usar um proxy SOCKS.