Pages : 1
#1 Le 23/06/2014, à 22:36
- alban.lopez
Connexion SSH toujours disponible
Bonjour a tous, je viens vers vous en quette d'une solution.
j'ai actuellement une connexion SSH pour faire du port forwarding (9100) avec authentification automatique par clef partagée.
le flux n'es que très ponctuel genre 1min toutes les 15 a 30minutes.
je cherche une solution pour être certain que même après une coupure réseau, le reboot du serveur ou même un reboot du client ssh le tunnel soit toujours opérationnel en quelque secondes.
les machines client et serveur ne doivent avoir aucune intervention Admin suite a une coupure ou un reboot.
y en a t'il parmis vous qui aurraient une piste pour moi ou mieux une solution fonctionnelle ?
j'ai cherché du coté de xinetd mais le resultat n'est pas tres probant !
Dernière modification par alban.lopez (Le 23/06/2014, à 22:39)
Admin système Windows et linux
Windows 2012R2 et Ubuntu 14.04
Hors ligne
#2 Le 24/06/2014, à 07:46
- bruno
Re : Connexion SSH toujours disponible
Bonjour,
Regarde du côté de autossh : http://wiki.archlinux.fr/Autossh
#3 Le 24/06/2014, à 08:00
- tiramiseb
Re : Connexion SSH toujours disponible
Allez, je suis gentil, je te montre le truc avec le genre de modification que tu demandes...
Mais bon, si tu essayais par toi-même plutôt que de demander de te tenir par la main, tu pourrais finir par réussir à marcher tout seul...
J'ai donc précisé "autossh_user", "autossh_stuff" et "autossh_host".
1/ créer un utilisateur "autossh_user"
2/ créer le script /etc/init.d/autossh_stuff :
#!/bin/sh
### BEGIN INIT INFO
# Provides: autossh_stuff
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Should-Start:
# Should-Stop:
# X-Start-Before:
# X-Stop-After:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Autossh
# Description: Autossh
### END INIT INFO
case "$1" in
start)
su - autossh_user -c "AUTOSSH_PIDFILE=/tmp/autossh-tunnel.pid autossh -f -M 0 -N autossh_host"
;;
stop)
kill $(cat /tmp/autossh-tunnel.pid)
rm -f /tmp/autossh-tunnel.pid
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 <start|stop|restart>"
esac
3/ créer la configuration SSH de l'utilisateur autossh_user (~autossh_user/.ssh/config) :
Host autossh_host
HostName mon.super.serveur.où.se.connecte.autossh.com
LocalForward 9100 127.0.0.1:9100
ServerAliveInterval 10
4/ activer ça au démarrage :
sudo update-rc.d autossh_stuff defaults
On peut aussi créer un fichier de configuration Upstart dans /etc/init plutôt qu'un script dans /etc/init.d, mais bon je ne suis pas encore aussi à l'aise avec Upstart qu'avec les scripts...
Dernière modification par tiramiseb (Le 24/06/2014, à 08:50)
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#4 Le 24/06/2014, à 08:44
- alban.lopez
Re : Connexion SSH toujours disponible
Merci a vous 2,
OK pour autoSsh.
tiramiseb : ton code m'as l'air tres bien mais pour moi le terme autossh est très confus.
Pourrais tu remplacer le nom d'utilisateur autossh par autoSsh_user puis remplacer le nom de la conf SSH de cet utilisateur par autoSsh_Target par exemple, ce sera plus parlant pour moi.
si j'ai besoin de monter plusieurs tunnel de cette manière, avec plusieurs conf dans ssh.conf ca gère comment ?
Dernière modification par alban.lopez (Le 24/06/2014, à 08:48)
Admin système Windows et linux
Windows 2012R2 et Ubuntu 14.04
Hors ligne
#5 Le 24/06/2014, à 08:53
- tiramiseb
Re : Connexion SSH toujours disponible
Voir la modification que j'ai apportée à mon message précédent pour les détails que tu demandes.
si j'ai besoin de monter plusieurs tunnel de cette manière, avec plusieurs conf dans ssh.conf ca gère comment ?
- soit tu fais plusieurs scripts de démarrage (pour les gérer de manière indépendante) ;
- soit tu lances plusieurs fois autossh dans ce script, avec un AUTOSSH_PIDFILE différent, et dans "stop", tu fais plusieurs "kill" et plusieurs "rm".
PS : "ssh.conf" ça n'existe pas ; le fichier que j'ai donné, c'est ".ssh/config". Il faut être précis.
PPS: c'est pas "autoSsh", c'est "autossh". Allez, je te le concède, parfois on le voit écrit "AutoSSH". Mais jamais "autoSsh" : le premier "S" n'a pas plus d'importance que le reste.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#6 Le 24/06/2014, à 08:57
- tiramiseb
Re : Connexion SSH toujours disponible
Ah oui, j'allais oublier :
Côté serveur, il faut aussi faire des modifications :
1/ créer un utilisateur "autossh_user" ; pour ma part j'ai mis son "home directory" dans /var/run/autossh et son shell à /bin/false, par sécurité
2/ mettre la clé SSH de "autossh_user" sur le client dans le "authorized_keys" de cet utilisateur sur le serveur (fichier ~autossh_user/.ssh/authorized_keys) ; et en le sécurisant bien ça donne quelque chose comme :
from="adresse.ip.du.client",command="echo 'This account can only be used for autossh tunnels'",no-agent-forwarding,no-X11-forwarding ssh-rsa AAAAB[ici la clé publique]te9N autossh_user@machine_cliente
Dernière modification par tiramiseb (Le 24/06/2014, à 08:57)
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
Pages : 1