J'essaie de me connecter à ma base de données via le tunneling SSH à partir de l'un de nos serveurs d'applications Web avec MySQL Workbench. Voici la configuration de base; notez que j'ai changé certaines valeurs dans la capture d'écran pour des raisons de sécurité.
Le problème est que chaque fois que j'essaie de me connecter via un tunnel SSH à partir de l'un de nos serveurs d'applications, j'obtiens l'erreur suivante:
Impossible de se connecter à us-east-1.amazonaws.com via le tunnel SSH à computer.amazonaws.com avec l'utilisateur social_shop_prod. Impossible de se connecter au serveur MySQL sur 127.0.0.1.
Cependant, si j'utilise les mêmes informations d'identification via SSH via la ligne de commande suivante:
mysql -u social_shop_prod -h us-east-1.amazonaws.com -p
Je peux me connecter avec succès et obtenir l'invite de commande interactive MySQL.
J'ai parlé avec le reste de mon équipe de développement ici et aucun de nous ne peut comprendre pourquoi je ne peux pas tunneler SSH depuis nos serveurs d'applications avec Workbench; mais quand je SSH à l'un de nos serveurs d'applications et que je me connecte à MySQL via la ligne de commande; Je peux me connecter avec succès.
Et pourquoi essaie-t-il de se connecter via 127.0.0.1? Je n'ai pas précisé cela dans la configuration; mon fichier d'hôtes ne redirige pas non plus les domaines indiqués ci-dessous vers cette IP.
Toute contribution constructive est grandement appréciée.
la source
J'ai continué à gérer ce problème pendant près de 2 semaines maintenant, j'ai réussi à le régler. Je le posterai ici pour que plus de gens puissent l'essayer.
Ok, j'utilise OpenSSH (natif Win10) et Workbench 8.
Étape par étape:
1. Ajoutez vos clés d'hôte SSH à l'agent à l'aide de ssh-add.
2. Générez les paires de clés à l'aide de ssh-keygen. Dans mon cas, ces fichiers vont automatiquement
Users/myUser/.ssh
selon les configurations d'installation.3. Ajoutez la clé publique au fichier authorized_keys (qui doit se trouver dans le chemin d'installation de votre serveur, dans mon cas
Windows/System32/OpenSSH/.ssh
) sans extension.4. Ajoutez les clés générées que vous venez de créer à l'agent à l'aide de ssh-add.
Les étapes ci-dessus sont à peu près la configuration d'un serveur SSH en ligne de commande que je suppose que l'OP a déjà fait pour sa connexion fonctionne via le terminal. Pour configurer MySQL Workbench 8, vous faites à peu près la même chose, sauf que vous devez convertir private_key.pem au format OpenSSH avant de les déplacer vers
Users/myUser/.ssh
etOpenSSH_instalation_path/.ssh
User/myUser/.ssh
etOpenSSH_instalation_path/.ssh
OpenSSH_instalation_path/.ssh
dossier.User/myUser/.ssh
.MISE À JOUR: Vous devrez définir les éléments suivants dans votre fichier sshd_config:
PermitRootLogin sans mot de passe
PubkeyAuthentication oui
PasswordAuthentication non
PermitEmptyPasswords non
AllowTcpForwarding oui
LISEZ S'IL VOUS PLAÎT:
Je suis un analyste inexpérimenté, donc si un utilisateur plus avancé sait lequel des deux dossiers .ssh est le bon, veuillez nous le dire. Je trouve l'OpenSSH un peu ambigu à ce sujet.
Cela a fonctionné pour moi tout en définissant un environnement de développement local en utilisant uniquement localhost. Juste à des fins d'apprentissage.
Vous pouvez ajouter myUser @ localhost aux utilisateurs de MySQL Workbench avant de tester la connexion.
Si c'est vraiment nécessaire, je peux ajouter des images.
la source
Dans mon cas, le problème que j'ai dû passer à un nom de domaine ou une adresse IP valide au lieu d'un hôte personnalisé localement résolu.
Échec de la résolution de l'hôte personnalisé (
/etc/hosts
)Je travaille avec un mécanisme de résolution des hôtes locaux qui définit:
Pour une raison quelconque avec
MySQL 5.2.47
sur ceLinux Mint 14 (Nadia)
qui est similaire àUbuntu 12.10 (Quantal)
la mécanisme de résolution ne fonctionne pas .Solution
Passez simplement à un nom de domaine public tel que
my-website.com
résoudre le problème.la source
Voir ici pour une liste de ressources pour la connexion à diverses cibles (Amazon RDS, Amazon EC2, Windows Azure et autres): http://forums.mysql.com/read.php?152,252640,252640#msg-252640 .
la source
J'ai eu un problème similaire, et cela peut être évident, mais vérifiez les règles de pare-feu dans AWS. J'ai un ensemble de plages IP pour limiter les connexions du monde extérieur. Et l'IP de mon bureau a changé, elle est donc sortie de la plage IP. Mon collègue dans un autre bureau pouvait toujours se connecter, donc je pensais que le problème était sur mon PC, mais le problème était avec les règles de pare-feu dans AWS. J'espère que cela aide quelqu'un :)
la source