Sous Debian 11, je souhaite, pour la première fois, établir une connexion postgresql permanente entre 2 serveur via un tunnel ssh.
Ma commande ponctuelle fonctionne.
Mon service fonctionne sans erreur apparente (voir Edit à la fin) et pourtant je n’arrive pas à me connecter, le port local n’est pas ouvert!
Merci d’avance pour toute aide.
Pour information mon service : /etc/systemd/system/ssh-tunnel3.service
[Unit]
Description=ssh tunnel
Wants=network.target
After=network.target
StartLimitIntervalSec=5
StartLimitBurst=1
[Service]
# https://stackoverflow.com/questions/62604573/systemd-ssh-tunnel-service-failing-while-command-works-in-command-line
StandardInput=tty-force # 255 error si pas cette ligne - pas compris pourquoi !
Type=simple
ExecStart=/usr/bin/ssh admin@xxxxx.yy -4 -N -L 35432:localhost:5432
ExecStop=/usr/bin/ssh arh -O exit -R 35432:localhost:5432
TimeoutStartSec=10
TimeoutStopSec=10
Restart=always
RestartSec=10
User=admin
[Install]
WantedBy=multi-user.target
et
systemctl status ssh-tunnel3
● ssh-tunnel3.service - ssh tunnel
Loaded: loaded (/etc/systemd/system/ssh-tunnel3.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-04-08 08:14:53 CEST; 1min 59s ago
Main PID: 1991402 (ssh)
Tasks: 1 (limit: 9394)
Memory: 988.0K
CGroup: /system.slice/ssh-tunnel3.service
└─1991402 /usr/bin/ssh admin@xxxxx.yy -4 -N -L 35432:localhost:5432
Edit :
En ajoutant : StandardOutput=journal+console
J’ai un message dans ce journal :
The unit ssh-tunnel3.service has entered the ‹ failed › state with result ‹ exit-code ›
Reste à comprendre pourquoi?
Et pourquoi le status est Ok?
Et pourquoi ssh -v … , dans le service, n’envoie rien dans le journal ou à la console
tu utilise un compte (admin) pour la session ssh. Comment authentifies tu ce coimpte? via des clefs ou un mot der passe? Pour cette utilisation mieux vaut des clefs.
J’ai pensé faire un wrapper autour de ssh pour au moins récupérer les infos de l’option -v et poursuivre mon analyse …
Ceci dit entre temps, j’ai configuré un openvpn et cela fonctionne (j’avais choisi un tunnel car je fonctionnais déjà comme ça en ponctuel et sur le papier c’était plus simple et suffisant).
Je ne ferme pas le post car il n’est pas résilu, mais je ne travaille plus dessus (pour l’instant)
J’ai à une époque bcp utilisé et abusé des tunnels ssh.
Sur certains réseaux, la connexion ne tenait pas plus de quelques heures et était automatiquement coupée.
C’est pourquoi j’utilisais autossh qui est fait pour ça et réinitialise la connexion en cas de coupure.
L’utilisation de tunnel SSH est en réponse à des problématiques particulières qui n’ont rien à voir avec un VPN.
Par exemple, je l’utilise pour une usbip. Cette application partage un périphérique USB sur le réseau. Le problème c’est que ce n’est pas sécurisé. Donc je n’ouvre pas les flux et le tunnel relie en fait les deux interfaces lo du serveur et de l’ordinateur distant.
Coté serveur: 127.0.0.1:PORT1
Coté Client: 127.0.0.1:PORT2
PORT1 et PORT2 peuvent être identiques.