GNU/Linux >> Tutoriels Linux >  >> Linux

Comment garder un tunnel SSH ouvert de manière fiable ?

On dirait que vous avez besoin d'autossh. Cela surveillera un tunnel ssh et le redémarrera si nécessaire. Nous l'utilisons depuis quelques années et il semble bien fonctionner.

autossh -M 20000 -f -N your_public_server -R 1234:localhost:22 -C

Plus de détails sur le paramètre -M ici


Tous les pare-feu avec état oublient une connexion après n'avoir pas vu de paquet pour cette connexion pendant un certain temps (pour éviter que les tables d'état ne se remplissent de connexions où les deux extrémités meurent sans fermer la connexion). La plupart des implémentations TCP enverront un paquet keepalive après une longue période sans entendre de l'autre côté (2 heures est une valeur courante). Si, toutefois, il existe un pare-feu avec état qui oublie la connexion avant que les paquets keepalive puissent être envoyés, une connexion de longue durée mais inactive mourra.

Si tel est le cas, la solution consiste à empêcher la connexion de devenir inactive. OpenSSH a une option appelée ServerAliveInterval qui peut être utilisée pour empêcher la connexion d'être inactive trop longtemps (en prime, il détectera plus tôt quand le pair est mort même si la connexion est inactive).


J'ai utilisé le script Bash suivant pour continuer à générer de nouveaux tunnels ssh lorsque le précédent meurt. L'utilisation d'un script est pratique lorsque vous ne voulez pas ou ne pouvez pas installer de packages supplémentaires ou utiliser un compilateur.

while true
do
  ssh <ssh_options> [[email protected]]hostname
  sleep 15
done

Notez que cela nécessite un fichier clé pour établir la connexion automatiquement, mais c'est également le cas avec autossh.


Linux
  1. Comment augmenter le délai d'expiration de la connexion SSH

  2. Comment configurer un tunnel SSH inversé sous Linux

  3. Comment puis-je tunneliser tout mon trafic réseau via SSH ?

  4. Comment puis-je me déconnecter d'une session SSH ouverte et distante ?

  5. Comment quitter une connexion SSH ?

Ssh – Comment fonctionne le tunneling Ssh inversé ?

Comment maintenir les sessions SSH à distance en cours d'exécution après la déconnexion

Comment empêcher SSH de se déconnecter s'il est inactif depuis un certain temps

Comment savoir si une connexion ssh ControlMaster est en cours d'utilisation

Comment configurer le tunnel ssh pour transférer ssh?

Connexion SSH via un tunnel SSH inversé (distant)