Connexion MySQL over SSH impossible avec workbench

boyero

Membre junior
25 Octobre 2006
13
0
Bonjour,

je reprends mes activités sur Macbook et je suis un peu perdu sur un souci, voici mon histoire.

J'arrive avec le terminal à me connecter avec une paire de clés sur mon serveur Debian, clé nouvellement générée, bonne longueur et bonne sécurité, passphrase définie, bref, ça marche.

Avec MySQL Workbench, v.8.0.13, installé via Brew, impossible de me connecter.
Ma config :
TCP/IP over SSH,
ssh hostname = monsite.tld:22,
ssh username = root (oui, je sais..),
ssh password : j'ai essayé en reseignant et en ne renseignant pas le passphrase au cas où
ssh key file ~/.ssh/id_rsa (en copiant collant dans le terminal, ça fonctionne bien.

Lorsque je teste la connexion, ça me dit le classique "Access denied. Authentification that can continue: publickey" (connexion par mot de passe désactivée sur le serveur)

Voici le détail des logs de Workbench :
Bloc de code:
21:33:51 [INF][     SSH tunnel]: Opening SSH tunnel to myserver.tld:22
21:33:51 [INF][      SSHCommon]: libssh: ssh_connect ssh_connect: libssh 0.7.5 (c) 2003-2014 Aris Adamantiadis, Andreas Schneider, and libssh contributors. Distributed under the LGPL, please refer to COPYING file for information about your rights, using threading threads_stdthread
21:33:51 [INF][      SSHCommon]: libssh: ssh_socket_connect ssh_socket_connect: Nonblocking connection socket: 21
21:33:51 [INF][      SSHCommon]: libssh: ssh_connect ssh_connect: Socket connecting, now waiting for the callbacks to work
21:33:51 [INF][      SSHCommon]: libssh: ssh_packet_dh_reply ssh_packet_dh_reply: Received SSH_KEXDH_REPLY
21:33:51 [INF][      SSHCommon]: libssh: ssh_client_curve25519_reply ssh_client_curve25519_reply: SSH_MSG_NEWKEYS sent
21:33:51 [INF][      SSHCommon]: libssh: ssh_packet_newkeys ssh_packet_newkeys: Received SSH_MSG_NEWKEYS
21:33:51 [INF][      SSHCommon]: libssh: ssh_packet_newkeys ssh_packet_newkeys: Signature verified and valid
21:33:51 [INF][      SSHCommon]: libssh: ssh_packet_userauth_failure ssh_packet_userauth_failure: Access denied. Authentication that can continue: publickey
21:33:51 [INF][     SSHSession]: Banner:
21:33:51 [ERR][     SSHSession]: User authentication failed.
21:33:51 [ERR][     SSH tunnel]: Authentication error opening SSH tunnel: Access denied. Authentication that can continue: publickey



Côté serveur Debian, si je regarde dans /var/log/auth.log, je vois que quelque chose se passe au même moment : sshd[25614]: rexec line 98: Deprecated option UseLogin

J'ai tenté de mettre à jour libssh au cas où mais je sèche un peu là..

Sur Cyberduck, je n'arrive pas à ajouter la connexion aussi, je tente en SFTP, je trouve mon id_rsa dans la liste déroulante, je mets le nom d'utilisateur et laisse le mdp vide, mais rien ne se passe quand je clique sur "se connecter".. je ne comprends pas..

Merci de votre aide !!
 

boyero

Membre junior
25 Octobre 2006
13
0
Bon, la technique du canard en plastique a encore bien fonctionné.
Tout n'est pas clair comme de l'eau de roche pour moi mais en gros, pour ceux que ça intéresse :

MySQL Workbench ne veut utiliser que des clés au format OpenSSH, qu'il faut en gros générer via des commandes du type
Bloc de code:
openssl genrsa -out private_key.pem 2048
openssl rsa -in private_key.pem -pubout -out public_key.pem
chmod 400 private_key.pem 
chmod 444 public_key.pem
source https://dev.mysql.com/doc/mysql-security-excerpt/5.7/en/creating-rsa-files-using-openssl.html

il faut ensuite transformer le public_key.pem dans un format qu'on peut mettre dans les authorized_keys (en 1 ligne)
Bloc de code:
ssh-keygen -f private.pem -y > private.pub

Il faut enfin l'ajouter aux authorized_keys
Bloc de code:
cat ~/.ssh/private_key.pub | ssh user@server.tld "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Et boom, plus de problème.

Pour Cyberduck, c'est + bizarre, j'ai dû cliquer dans la fenêtre de connexion sur l'URL proposée automatiquement, ce qui m'a ouvert une nouvelle fenêtre de connexion où j'ai là aussi pu choisir ma clé privée ; cette deuxième fenêtre de connexion s'est alors fermée et sous la première fenêtre de connexion, j'ai vu le serveur apparaître... j'ai donc fermé la première fenêtre de connexion et c'était OK.. j'ai réessayé de faire la même chose, mais impossible dans la première fenêtre de connexion, je ne comprends pas encore cela..