SSH tunelamento e encaminhamento de porta para se conectar com o MySQL por trás do proxy ssh

1

Eu tenho um mysql rodando em uma máquina (C) atrás de uma máquina proxy SSH (B). Eu quero conectar ao mysql em C na porta 3306 usando o mysql workbench no meu computador local (A). A máquina B é acessível pela máquina A via ssh para um usuário abc com uma chave privada. máquina C é acessível para máquina B via ssh para usuário root usando a mesma chave privada (A chave tem que ser encaminhada o que normalmente acontece quando eu faço A-ssh - > B - ssh - > C)

Qual deve ser minha estratégia de tunelamento? Preciso usar o proxy de meias?

Obrigado

    
por Vijay Muvva 04.08.2016 / 15:40

1 resposta

1

Embora não seja uma correspondência exata, aqui estão algumas outras perguntas relacionadas:

  1. como acessar um servidor ssh que não pode aceitar conexões de entrada
  2. 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.

    
por 12.08.2016 / 03:23