GNU/Linux >> Tutoriels Linux >  >> Linux

Comment se reconnecter à une session ssh déconnectée

Solution 1 :

Essayez de définir ClientAliveInterval (par exemple 60) et TCPKeepAlive (oui ou non) sur les valeurs appropriées sur le côté serveur sshd.conf .

Cela devrait maintenir votre session en vie même si la connexion est perdue pendant quelques minutes.

Solution 2 :

MISE À JOUR :Pour une réponse réelle, voir la réponse de zero_r ci-dessous

Ce n'est pas une réponse, mais une solution de contournement. Utiliser l'écran.

Lorsque vous vous connectez pour la première fois, exécutez screen. Vous obtenez un autre shell, exécutez des commandes dans celui-ci. Si vous êtes déconnecté, le processus screen maintient le terminal en vie afin que votre shell et les processus qu'il exécute ne basculent pas. Lorsque vous vous reconnectez, exécutez 'screen -r' pour reprendre.

Il y a beaucoup plus à configurer et à utiliser screen, mais ce qui précède devrait résoudre votre problème.

Solution 3 :

Comme mentionné ci-dessus, GNU Screen est la voie à suivre. Cela vous permettra d'avoir une "session d'écran" sur la boîte à distance dans laquelle vous pourrez exécuter plusieurs commandes, via plusieurs "fenêtres d'écran". Cela se détachera simplement si votre connexion SSH parent meurt, gardant tous les sous-processus en cours d'exécution en son sein.

'man screen ' est votre ami comme d'habitude, et le package du système d'exploitation doit s'appeler 'screen ' s'il n'est pas installé par défaut.

Les bases sont :

  • Démarrer une session screen (sur votre hôte distant) :

    $ screen
    
  • Déconnectez-vous de votre session d'écran :CTRL-A , d

  • Reconnectez-vous à votre session d'écran après vous être reconnecté :

    $ screen -d -r
    
  • Ouvrir une autre 'fenêtre' d'écran :CTRL-A , c

  • Parcourez vos fenêtres d'écran ouvertes :CTRL-A , espace

Il y a beaucoup de trucs sympas que vous pouvez faire avec Screen. Je l'utilise depuis plus de 10 ans et je découvre toujours de nouvelles fonctionnalités. C'est mon utilitaire Unix préféré.

Solution 4 :

Je n'arrive pas à croire que personne n'ait mentionné MOSH ;

Mosh est un protocole distinct qui peut se connecter au processus de connexion SSH, il maintient votre session en vie après des jours de déconnexion, de changement d'adresse IP, de latence élevée, etc. Il est expliqué sur la page d'accueil mieux que je ne peux l'expliquer, j'ai donc copié la description ci-dessous. Mes expériences et mes conseils sont que je l'utilise sur mon mobile Android, c'est une bouée de sauvetage lorsque je voyage et que je fais du SSH. Il en va de même sur mon ordinateur portable lorsqu'il est connecté à un téléphone portable dans le train par exemple. Je recommande de compiler à partir des sources pour obtenir la dernière version, la version de dépôt pour moi dans Ubuntu contient quelques désagréments qui sont corrigés dans la dernière version (au moment de la rédaction).

Mosh (coque mobile)

Application de terminal à distance qui permet l'itinérance, prend en charge la connectivité intermittente et fournit un écho local intelligent et une édition de ligne des frappes de l'utilisateur.

Mosh remplace SSH. Il est plus robuste et réactif, en particulier sur les liaisons Wi-Fi, cellulaires et longue distance.

Mosh est un logiciel gratuit, disponible pour GNU/Linux, FreeBSD, Solaris, MacOS X et Android.

Fonctionnalités du site :

  • Modifier l'adresse IP. Restez connecté :Mosh se déplace automatiquement lorsque vous vous déplacez entre les connexions Internet. Utilisez Wi-Fi dans le train, Ethernet dans un hôtel et LTE sur une plage :vous resterez connecté. La plupart des programmes réseau perdent leurs connexions après l'itinérance, y compris SSH et les applications Web comme Gmail. Mosh est différent.

  • Fait de beaux rêves :Avec Mosh, vous pouvez mettre votre ordinateur portable en veille et le réveiller plus tard, en gardant votre connexion intacte. Si votre connexion Internet tombe, Mosh vous avertira, mais la connexion reprendra lorsque le service réseau reviendra.

  • Supprimez le décalage du réseau :SSH attend la réponse du serveur avant de vous montrer votre propre frappe. Cela peut rendre l'interface utilisateur alousy. Mosh est différent :il donne une réponse instantanée à la saisie, à la suppression et à l'édition de lignes. Il le fait de manière adaptative et fonctionne même dans des programmes plein écran comme emacs et vim. En cas de mauvaise connexion, les prédictions en suspens sont soulignées afin que vous ne soyez pas induit en erreur.

  • Aucun code privilégié. Aucun démon :Vous n'avez pas besoin d'être le superutilisateur pour installer ou exécuter Mosh. Le client et le serveur sont des exécutables exécutés par un utilisateur ordinaire et ne durent que le temps de la connexion.

  • Même méthode de connexion :Mosh n'écoute pas sur les ports réseau et n'authentifie pas les utilisateurs. Le client mosh se connecte au serveur via SSH et les utilisateurs présentent les mêmes informations d'identification (par exemple, mot de passe, clé publique) qu'auparavant. Ensuite, Mosh exécute le mosh-server à distance et s'y connecte via UDP.

  • Fonctionne à l'intérieur de votre terminal, mais mieux :Mosh est un programme en ligne de commande, comme ssh. Vous pouvez l'utiliser dans xterm, gnome-terminal, urxvt, Terminal.app, iTerm, emacs, screen ou tmux. Mais mosh a été conçu à partir de zéro et ne prend en charge qu'un seul jeu de caractères :UTF-8. Il corrige des bogues Unicode dans d'autres terminaux et dans SSH.

  • Control-C fonctionne très bien :Contrairement à SSH, le protocole basé sur UDP de mosh gère la perte de paquets avec élégance et définit la fréquence d'images en fonction des conditions du réseau. Mosh ne remplit pas les tampons réseau, donc Control-C
    fonctionne toujours pour arrêter un processus incontrôlable.

Solution 5 :

autossh surveille votre connexion et si elle tombe en panne, il se reconnecte. Il est plus fiable que keepalives. Si vous vous connectez à une session screen, vous continuerez là où vous vous êtes déconnecté (voir rscreen qui vient avec autossh)


Linux
  1. Comment mettre fin à une connexion SSH qui ne répond pas sous Linux ?

  2. Ssh - Comment faire pour qu'un processus que je démarre pendant une session Ssh s'exécute après la fin de la session ??

  3. Comment récupérer/supprimer une session Ssh après avoir perdu la connexion ?

  4. Comment envoyer des données au presse-papiers local à partir d'une session SSH distante

  5. Comment attribuer un nom à un écran ?

Comment vérifier si vous êtes en session d'écran ou pas sous Linux

Comment démarrer automatiquement une session d'écran sous Linux lors de la connexion

Comment installer Mosh Shell comme alternative SSH sous Linux

Comment déconnecter un utilisateur de SSH sous Linux

Comment installer et utiliser la commande d'écran Ubuntu 20.04

Comment installer Mosh Shell comme alternative SSH sur le bureau Linux