logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 16-11-2022 22:51:03

lexi
Membre
Inscription : 03-02-2021

Tunnel SSH pour se connecter à MariaDB

Hello tout le monde,

Sur mon rpi, j'ai un serveur MariaDB. Une fois connecté sur mon serveur, je peux me connecter en local à la base de la manière suivante :

root@rpi4-20210823:~# mysql --user=backup --password=toto --host=localhost --port 3306 --database=piwigo_public
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 15666
Server version: 10.5.12-MariaDB-0+deb11u1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [piwigo_public]>




Mais par contre je n'arrive pas à m'y connecter via un tunnel SSH.


Je me créé un tunnel avec le port d'écoute 3306 vers le port 3306 vers le serveur ssh :

Depuis mon poste client :

kfocal@kfocal:~$ ssh -L 3306:localhost:3306 root@XXX.gleeze.com -p 10001
Enter passphrase for key '/home/kfocal/.ssh/id_rsa':
Linux rpi4-20210823 5.10.0-12-arm64 #1 SMP Debian 5.10.103-1 (2022-03-07) aarch64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Nov 16 22:34:08 2022 from 93.16.XX.115
root@rpi4-20210823:~#
 




Depuis mon poste client sur une autre fenetre terminal :

kfocal@kfocal:~$ mysql --user=backup --password=toto --host=localhost --port 3306 --database=piwigo_public
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
kfocal@kfocal:~$



J'obtiens ce message d'erreur parce que je n'ai pas de service serveur MariaDB sur mon poste client ce qui est tout à fait normal.

Mais je m'attendais à ce que ma connexion soit automatiquement redirigée via mon tunnel. Pourquoi n'est-ce pas le cas ?

Est ce une limitation de la commande mysql ?

Hors ligne

#2 16-11-2022 23:54:59

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12.5
Noyau : Linux 6.1.0-20-amd64
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : Tunnel SSH pour se connecter à MariaDB

Bonsoir,

L'ouverture du tunnel SSH a la syntaxe suivante:

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATION_PORT [USER@]SSH_SERVER


Donc, pour toi:

kfocal@kfocal:~$ ssh -L 3306:<@IP RPI>:3306 root@XXX.gleeze.com -p 10001



Nan ?

Tu as changé le port standard SSH de 22 à 10001 sur le Raspberry, c'est çà ?

Je suppose qu'une «connexion simple» (ssh normal, pas MariaDB) fonctionne:

kfocal@kfocal:~$ ssh root@XXX.gleeze.com -p 10001



@+

Dernière modification par Cram28 (16-11-2022 23:55:25)


Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

#3 17-11-2022 00:08:21

lexi
Membre
Inscription : 03-02-2021

Re : Tunnel SSH pour se connecter à MariaDB

Bonsoir Cram28,

Cram28 a écrit :

Tu as changé le port standard SSH de 22 à 10001 sur le Raspberry, c'est çà ?

Je suppose qu'une «connexion simple» (ssh normal, pas MariaDB) fonctionne:

kfocal@kfocal:~$ ssh root@XXX.gleeze.com -p 10001


La live box fait une redirection du port 10001 vers l'ip privé de mon RPI sur le port 28. J'ai laissé par défaut le port d'écoute 22.

La connexion simple fonctionne bien en effet. En rajoutant les options pour le tunnel, la connexion s'établie bien également correctement. Comme on peut voir sur mon premier message, je tombe sur le message d'accueil de mon RPI


Cram28 a écrit :


Donc, pour toi:

kfocal@kfocal:~$ ssh -L 3306:<@IP RPI>:3306 root@XXX.gleeze.com -p 10001



Tout à fait, j'ai pensé à cette ligne de code, avec @IP RPI = localhost parce que le serveur MariaDB est sur la même machine que mon serveur ssh

Hors ligne

#4 17-11-2022 00:18:38

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12.5
Noyau : Linux 6.1.0-20-amd64
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : Tunnel SSH pour se connecter à MariaDB

Ça m'a l'air un peu «tordu» comme truc ces renvois/connexions/ports...

Le tunnel se fabrique depuis le client SSH, pas le serveur en principe.

Du coup, je t'invite à récupérer l'@IP du RPI avec:

ping rpi4-20210823

et d''utiliser l'@ IP récupérée pour remplacer <@IP RPI>

Ou bien peut-être que si ça peut fonctionner directement:

kfocal@kfocal:~$ ssh -L 3306:rpi4-20210823:3306 root@XXX.gleeze.com -p 10001



A voir ?
@+

Dernière modification par Cram28 (17-11-2022 00:28:10)


Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

#5 17-11-2022 10:29:22

raleur
Membre
Inscription : 03-10-2014

Re : Tunnel SSH pour se connecter à MariaDB

Normal que toutes les options de mysql soient de la forme --option=valeur sauf --port 3306 ?
As-tu essayé en ajoutant --protocol=TCP ?

Il vaut mieux montrer que raconter.

Hors ligne

#6 17-11-2022 22:50:25

lexi
Membre
Inscription : 03-02-2021

Re : Tunnel SSH pour se connecter à MariaDB

Whaaaaou raleur, un grand merci à toi !!! Cela marche, en précisant le protocole TCP, cela fonctionne très bien.


Création du tunnel en background avec l'option -f et vérification de sa création

kfocal@kfocal:~$ mysql --user=backup --password=toto --host=localhost --port=3306 --database=piwigo_public
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
kfocal@kfocal:

kfocal@kfocal:~$ ps -aef | grep ssh
root         946       1  0 nov.12 ?       00:00:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
kfocal      1309    1253  0 nov.12 ?       00:00:00 /usr/bin/ssh-agent /usr/bin/im-launch /usr/bin/startplasma-x11
kfocal     65308    1566  0 nov.16 ?       00:00:04 /usr/bin/gwenview /home/kfocal/Downloads/tunnel ssh-Page-2(2).jpg
kfocal    132042       1  0 21:50 ?        00:00:00 ssh -N -f -L 3306:127.0.0.1:3306 root@xxxx.gleeze.com -p 10001
kfocal    133231   67695  0 22:01 pts/2    00:00:00 grep --color=auto ssh
kfocal@kfocal:~$




Et lorsque je précise pas le protocole, avec cette fois-ci la bonne syntaxe pour les options au format long, cela ne fonctionne toujours pas :


kfocal@kfocal:~$ mysql --user=backup --password=kfocal --host=localhost --port 3306 --database=piwigo_public
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
kfocal@kfocal:~$




Mais quand je précise le protocol TCP, je tombe sur l'invite de MariaDb, comme si j'étais en local avec le prompt de mon post client big_smile


kfocal@kfocal:~$ mysql --user backup --password kfocal --host localhost --port 3306 --database piwigo_public
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
kfocal@kfocal:~$ mysql --user=backup --password=kfocal --host=localhost --port=3306 --database=piwigo_public
ERROR 2002 (HY000): Can'
t connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
kfocal@kfocal:~$ mysql --user=backup --password=kfocal --host=localhost --port=3306 --database=piwigo_public --protocol=TCP
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 16109
Server version: 10.5.12-MariaDB-0+deb11u1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [piwigo_public]>
MariaDB [piwigo_public]>
MariaDB [piwigo_public]> exit
Bye
kfocal@kfocal:~$

Dernière modification par lexi (17-11-2022 23:02:19)

Hors ligne

#7 17-11-2022 23:10:52

lexi
Membre
Inscription : 03-02-2021

Re : Tunnel SSH pour se connecter à MariaDB

Cram28 a écrit :

Ça m'a l'air un peu «tordu» comme truc ces renvois/connexions/ports...

Le tunnel se fabrique depuis le client SSH, pas le serveur en principe.


Je crois que je n'avais pas été suffisamment clair. scratchhead.gif

Mes première tentative :
- je créé mon tunnel sur une fenêtre depuis mon poste client
- puis je lance la commande mysql sur une autre fenêtre depuis mon poste client

Mais avant de passer par le tunnel, la première chose que j'ai faite était de me connecter de manière (ou même le tunnel) puis de me connecter en local pour tester ma commande mysql.
C'est peut-être pour cette raison que cela t'as induit en erreur


Sinon il me semble que l'on peut faire un tunnel depuis le serveur, en le création le tunnel de type Remote avec l'option -R et non pas Local avec l'option -L.

Hors ligne

#8 18-11-2022 07:26:07

Cram28
Adhérent(e)
Lieu : Eure-et-Loir
Distrib. : Debian GNU/Linux 12.5
Noyau : Linux 6.1.0-20-amd64
(G)UI : Xfce 4.18
Inscription : 14-09-2020

Re : Tunnel SSH pour se connecter à MariaDB

Bonjour,

Je crois en effet: je n'ai rien compris ops.gif

Je m'en va me faire quelques manip. de mon côté à l'occasion...
@+

Travaille du chapeau: "Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas certain que vous réalisiez que ce que vous avez entendu n'est pas exactement ce que je voulais dire..."

Hors ligne

Pied de page des forums