Você tentou usar
ssh -L 33066:localhost:3306 remotemachine
?
Por favor, certifique-se também que dentro do sistema de privilégios mysql, tanto o 127.0.0.1 quanto o localhost são fontes permitidas para o usuário do seu banco de dados.
Eu tenho um servidor mysql rodando em algum servidor em nossa rede. Agora, apenas as conexões do host local são aceitas pelo servidor e não consigo me conectar a ele remotamente. Agora, quero configurar um encaminhamento de porta, usando o ssh para poder usar algumas ferramentas da GUI com esse servidor. No entanto, de alguma forma eu não consigo autenticar, quando me conecto via túnel! É assim:
Na máquina remota:
mysql -u exporter --password=test -h localhost -P 3306 mydatabase
Tudo funciona perfeitamente e eu recebo um shell mysql conectado.
Agora, na minha máquina local, para configurar o encaminhamento de porta:
ssh remotemachine -L127.0.0.1:33066:127.0.0.1:3306
PARA se conectar ao servidor mysql remoto, usando este túnel, na máquina local que eu faço:
mysql -u exporter --password=test -h localhost -P 33066 mydatabase
Aqui está o erro que recebo:
ERROR 1045 (28000): Access denied for user 'exporter'@'localhost' (using password: YES)
Como isso é possível e o que posso fazer sobre isso? Nota: o problema é totalmente reproduzível com outro servidor mysql em outra máquina remota.
Apenas tentei fazer o mesmo eu hoje e descobri que quando você se conecta ao localhost / 127.0.0.1 o cliente automaticamente tenta se conectar ao processo através de um socket local ao invés de uma conexão tcp / ip normal, o que evita o ssh túnel.
Você tem que usar seu endereço de rede local (ex .: 192.168.0.35) em vez do endereço de dispositivo de loopback (127.0.0.1).
Você também precisará adicionar o parâmetro -g à sua linha de comando ssh para disponibilizar essa porta através do endereço de dispositivo sem loopback 192.168.0.35:3306, caso contrário, ela estaria disponível apenas por 127.0.0.1:3306
Tags ssh mysql port-forwarding