Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/06/2014, à 23: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, à 23:39)


Admin système Windows et linux
Windows 2012R2 et Ubuntu 14.04

Hors ligne

#2 Le 24/06/2014, à 08:46

bruno

Re : Connexion SSH toujours disponible

Bonjour,

Regarde du côté de autossh : http://wiki.archlinux.fr/Autossh

Hors ligne

#3 Le 24/06/2014, à 09: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, à 09:50)

Hors ligne

#4 Le 24/06/2014, à 09: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, à 09:48)


Admin système Windows et linux
Windows 2012R2 et Ubuntu 14.04

Hors ligne

#5 Le 24/06/2014, à 09: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.

Hors ligne

#6 Le 24/06/2014, à 09: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, à 09:57)

Hors ligne