Estou tentando conectar-me ao meu banco de dados via tunelamento SSH de um de nossos servidores de aplicativos da web com o MySQL Workbench. Aqui está a configuração básica; observe que alterei alguns valores na captura de tela por motivos de segurança.
O problema é que sempre que tento conectar-me através de um túnel SSH de um de nossos servidores de aplicativos, recebo o seguinte erro:
Falha ao conectar-se a us-east-1.amazonaws.com através do túnel SSH em computer.amazonaws.com com o usuário social_shop_prod. Não é possível conectar ao servidor MySQL no 127.0.0.1.
No entanto, se eu usar as mesmas credenciais no SSH por meio da seguinte linha de comando:
mysql -u social_shop_prod -h us-east-1.amazonaws.com -p
Posso me conectar com sucesso e obter o prompt de comando interativo do MySQL.
Estive conversando com o restante da minha equipe de desenvolvimento aqui e nenhum de nós pode descobrir por que não posso fazer o túnel sobre o SSH de nossos servidores de aplicativos com o Workbench; mas quando eu SSH para um de nossos servidores de aplicativos e me conecto ao MySQL via linha de comando; Eu posso conectar com sucesso.
E por que ele está tentando se conectar através do 127.0.0.1? Eu não especifiquei isso na configuração; meu arquivo hosts também não está redirecionando os domínios mostrados abaixo para esse IP.
Qualquer contribuição construtiva é muito apreciada.
fonte
Continuei lidando com esse problema por quase duas semanas, agora que consegui defini-lo. Vou postá-lo aqui para que mais pessoas possam experimentá-lo.
Ok, estou usando o OpenSSH (Win10 nativo) e o Workbench 8.
Passo a passo:
1. Adicione suas chaves de host SSH ao agente usando ssh-add.
2. Gere os pares de chaves usando ssh-keygen. No meu caso, esses arquivos passam automaticamente para
Users/myUser/.ssh
as configurações de instalação.3. Adicione a chave pública ao arquivo allowed_keys (que deve estar dentro do caminho de instalação do servidor, no meu caso
Windows/System32/OpenSSH/.ssh
) sem extensões.4. Adicione as chaves geradas que você acabou de criar ao agente usando o ssh-add.
As etapas acima são basicamente a configuração de um servidor SSH da linha de comando, que eu descobri que o OP já fez para a conexão dele está funcionando através do terminal. Para configurar o MySQL Workbench 8, você faz exatamente a mesma coisa, exceto que deve converter o private_key.pem em um formato OpenSSH antes de movê-los para
Users/myUser/.ssh
eOpenSSH_instalation_path/.ssh
User/myUser/.ssh
eOpenSSH_instalation_path/.ssh
OpenSSH_instalation_path/.ssh
pasta.User/myUser/.ssh
.ATUALIZAÇÃO: você precisará definir o seguinte no seu arquivo sshd_config:
PermitRootLogin sem senha
PubkeyAuthentication yes
PasswordAuthentication não
PermitEmptyPasswords não
AllowTcpForwarding yes
POR FAVOR LEIA:
Sou um analista inexperiente, portanto, se um usuário mais avançado souber qual das duas pastas .ssh é a correta, informe-nos. Acho o OpenSSH meio ambíguo sobre isso.
Isso funcionou para mim ao definir um ambiente de desenvolvimento local usando apenas o host local. Apenas para fins de aprendizado.
Você pode adicionar myUser @ localhost aos usuários do MySQL Workbench antes de testar a conexão.
Se for realmente necessário, posso adicionar imagens.
fonte
No meu caso, o problema foi necessário voltar para um nome de domínio ou IP válido, em vez de um host personalizado localmente resolvido.
Falha na resolução do host personalizado (
/etc/hosts
)Eu trabalho com um mecanismo de resolução de hosts locais que definiu:
Por alguma razão com
MySQL 5.2.47
aLinux Mint 14 (Nadia)
qual é semelhante àUbuntu 12.10 (Quantal)
do mecanismo de resolução não trabalho .Solução
Basta mudar para um nome de domínio público , como
my-website.com
resolver o problema.fonte
Consulte aqui uma lista de recursos para conectar-se a vários destinos (Amazon RDS, Amazon EC2, Windows Azure e outros): http://forums.mysql.com/read.php?152,252640,252640#msg-252640 .
fonte
Eu tive um problema semelhante, e isso pode ser óbvio, mas verifique as regras de firewall na AWS. Eu tenho um intervalo de IP definido, para restringir as conexões do mundo exterior. E o IP no meu escritório mudou, ficando fora do intervalo de IP. Meu colega de outro escritório ainda pode se conectar, então pensei que o problema estava no meu PC, mas o problema estava nas regras de firewall da AWS. Espero que ajude alguém :)
fonte