Forum Astuces.divers Connexion a distance "definitive"

Posté par  . Licence CC By‑SA.
Étiquettes :
1
11
août
2016

Bonsoir, j'utilise une machine Linux avec SSH (openssh installé d'origine il me semble) depuis un autre ordinateur ( la machine Kali est sur un réseau fiable tandis que mon ordinateur perso est sur un réseau ayant régulièrement des coupures).

Lorsque j'ouvre ma session SSH et que je lance un programme qui peut prendre plusieures heures et que j'ai une coupure internet sur mon PC perso, ma connexion ssh se coupe et si je me reconnecte après, j'obtiens une nouvelle session, donc l'application ne s'affiche plus sur mon écran.
J'aimerai un moyen d'ouvrir une session qui ne se referme pas en cas de déconnexion (sauf si je le souhaite).
J'utilise PuTTy comme client ssh, si vous avez une idée, je serai heureux de la connaitre :) .

Merci !

  • # screen

    Posté par  (site web personnel) . Évalué à 7. Dernière modification le 11 août 2016 à 17:34.

    Bonjour,

    Tu peux installer screen sur le serveur cible. C'est un logiciel qui te permet de détacher ta session du prompt interactif que tu as ouvert.

    Utilisation :
    - créer un screen : screen -S NOM_DU_SCREEN
    - quitter un screen : CTRL+ALT+D
    - se repositionner sur le screen : screen -r NOM_DU_SCREEN
    - lister les screen : screen -list

    Donc pour ton cas d'usage, tu peux :
    - lancer ta connexion SSH
    - créer un screen via screen -S
    - lancer ta commande
    - quitter le screen via CTRL+ALT+D
    - exit ta session
    Et quand tu veux consulter l'avancement, tu te re-connectes et tu rattache le screen avec screen -r

    • [^] # Re: screen

      Posté par  . Évalué à 2.

      je ne sais plus pourquoi mais avec screen j'utilisais les options RdS

      screen -RdS le_nom_du_screen

      le reste ne change pas

    • [^] # Re: screen

      Posté par  . Évalué à 1.

      Bonsoir, merci des reponses rapides :).

      • quitter le screen via CTRL+ALT+D
      • exit ta session

      Mais si je ne quitte pas le screen proprement? en cas de coupure brusque de la liaison ssh ? le screen tourne encore ?

      • [^] # Re: screen

        Posté par  . Évalué à 2.

        Mais si je ne quitte pas le screen proprement? en cas de coupure brusque de la liaison ssh ? le screen tourne encore ?

        oui, c'est fait pour, pareil avec tmux
        il faut un vrai ordre "logout/exit ou ctrl+d" pour quitter screen ou tmux

  • # tmux

    Posté par  . Évalué à 3.

    moins courant que screen mais qui permet plus de choses,
    tu as tmux

    ca permet de faire comme screen (ouvrir un terminal, le perdre et se rattacher dessus)
    mais aussi de splitter ce terminal pour en faire 2, 3, ou simplement de faire plusieurs "onglet".

    perso au bureau je n'utilises plus que lui, à la place de Terminator.
    je demarres donc un seul terminal, meme basique, et je lances tmux dedans.

    Ctrl+b est là combinaison magique.
    Ctrl+b+? pour obtenir l'aide (esc pour en sortir)
    Ctrl+b+d pour detacher le tmux,
    tmux attach pour se reconnecter
    Ctrl+b+% pour faire un split gauche/droite
    Ctrl+b+" pour faire un split haut/bas
    Ctrl+b+, pour renommer l'onglet sur lequel tu es.

    et la synchro entre les terminaux
    Ctrl+b+: pour ouvrir la commande tmux, et taper set sync pour l'activer, refaire la meme commande pour le desactiver.

  • # Byobu

    Posté par  . Évalué à 1.

    Et sinon il y a byobu, une sorte de frontend a tmux ou screen !
    Il permet d'utiliser des raccourcis via les touches F au lieu des ctrl-x.

    Par exemple :
    F2: Créer un nouvel onglet
    F3: Aller sur l'onglet précédent
    F4: Aller sur l'onglet suivant
    F6: Se détacher de la session byobu
    F7: Entrer dans le mode "scrollback/search", il permet de naviguer et de chercher dans l'historique
    F8: Renommer l'onglet
    F9: Configuration de Byobu

    • [^] # Re: Byobu

      Posté par  . Évalué à 2.

      et ca marche bien avec les claviers portables qiu font que les touches Fx sont des touches multimedia, et il faut faire Fn+F2 pour creer un nouvel onglet ?

      seulement ca ne repond pas à son besoin, il lui faut un outil en ligne de commande, qu'il va pouvoir lancer sur le serveur sur lequel il se connecte en ssh
      pour recuperer la session là ou elle en est quand il perd et retrouve la liaison.

      • [^] # Re: Byobu

        Posté par  . Évalué à 1.

        Pour les claviers de portable comme ca, aucune idée.
        Sur mes PCs portables, les touches F sont accessibles directement, et je dois utiliser Fn pour avoir les touches multimédia.

        Sinon ca correspond bien a la demande,

        J'ai peut etre mal choisi mon mot "frontend", mais c'est bien un outils en ligne de commande, et ca permet de récupérer sa session.

        Lancer une première fois byobu crée une session (par exemple, avec le backend screen : byobu-screen -S pseudo).
        Ensuite on peut se déconnecter (F6) en laissant byobu tourner en tache de fond.
        Enfin, on peut revenir sur sa session avec byoby-screen -r pseudo.

  • # Un peu hors sujet : Mosh

    Posté par  (site web personnel) . Évalué à 4.

    Pour ceux qui n'éteigne jamais leur machine, ça fait aussi l'affaire.

    Dans mon cas, mon portable se connecte à un serveur en utilisant mosh, puis que je passe en veille, que je change de réseau (d'un wifi vers un autre, ou en passant par mon opérateur 3G/4G), je ne perds plus ma session.

    Quelques infos sur mosh :
    - l'ouverture de session se fait au travers de SSH qui lance le server mosh,
    - tout le reste de la communication s'effectue au travers de mosh (en UDP et plus TCP).

    Le plus gros problème (tout est relatif) pour moi est le serveur qui reste à tourner si le client a été tué.
    Depuis presque 3 ans que je l'utilise, je n'ai dû ouvrir qu'une quinzaine de sessions (un reboot tous les 6 mois, ça suffit).

    Bien sûr, je mixe avec screen…

    N.B. : J'avais prévenu c'est un peu HS.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.