214 votes

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

Existe-t-il un moyen de se connecter à une session ssh qui a été déconnectée ? Nous rencontrons des problèmes avec notre connexion réseau à un site distant sur lequel nous travaillons séparément. Cependant, dans l'intervalle, nous constatons un grand nombre de déconnexions dues à des paquets perdus lorsque nous sommes connectés aux serveurs du site distant. Souvent, la session reste active pendant un certain temps, et parfois elle se trouve au milieu d'une action (édition de fichiers, exécution d'un processus, etc.) à laquelle je dois revenir plutôt que de la redémarrer si possible.

0 votes

Une question similaire a été posée dans unix.stackexchange.com/questions/105001/ avec quelques conseils sur la façon de contourner les déconnexions en premier lieu...

2 votes

Pour une réponse concrète, voir l'article de @march_happy. reptyr ou mon mode d'emploi ci-dessous.

3voto

David Spillett Points 22424

Cette réponse est toujours pertinente, l'écran existe, est pris en charge, fait toujours l'affaire, etc. mais il existe désormais d'autres solutions : tmux offre des fonctionnalités supplémentaires, et tant it que screen sont plus communément (dans mon expérience) utilisés enveloppés dans Byobu . Tous trois sont disponibles dans les dépôts standards des principales distributions Linux.


Comme d'autres l'ont souligné, l'écran est généralement la meilleure solution pour cela et il ajoute une foule d'autres fonctionnalités utiles.

Vous pouvez configurer votre profil sur la machine distante pour qu'il démarre et/ou se reconnecte automatiquement à l'écran lors de la connexion, ce qui vous évite d'oublier de démarrer l'écran la seule fois où vous en avez besoin à cause d'une coupure de connexion.

Ver http://tlug.dnho.net/?q=node/239 (ou recherchez sur Google de nombreux autres exemples réalisés de manière légèrement différente).

3voto

Kemo Points 6013

Une alternative plus moderne à screen, hélas non disponible pour certains types de "virtualisation" (e.g. dans cygwin vous pouvez avoir "screen", mais pas "tmux" à cause de la façon dont il est conçu), mais si vous avez la possibilité d'installer tmux, je vous recommande fortement de le faire au lieu de screen.

0 votes

Je ne suis pas d'accord, tmux est un paquetage disponible dans Cygwin. cygwin.com/packages/sommaire/tmux-src.html

2voto

munkiepus Points 51

Voici une autre solution sans écran.

Putty tray vous permet de faire exactement cela, il a une option de reconnexion à la déconnexion qui n'est pas dans le régulier ou le putty-ng.

https://puttytray.goeswhere.com/

c'est un fork (complètement open source) de putty avec d'autres options, allez dans les paramètres de connexion et il y a 2 options, une pour 'attempt to reconnect on connection failure', et 'attempt to reconnect on startup'.

3 votes

Ehh. Est-ce qu'il est livré avec un keylogger et un utilitaire d'exfiltration automatique de ppk, par hasard ?

2 votes

Je suppose que vous demandez s'il est en quelque sorte, vole vos détails, il est complètement open source, le code source est disponible sur github si vous voulez regarder son github.com/FauxFaux/PuTTYTray il y a pas mal de contributeurs :)

0 votes

De grands applaudissements :)

1voto

Leo Points 111

Une autre option consiste à utiliser Jupyter Notebook, qui dispose de son propre émulateur de terminal basé sur le Web.

Avantages

  • Lorsque je rattache mon vpn, je peux rouvrir toutes mes connexions sur plusieurs terminaux sur plusieurs hôtes en ouvrant tous les signets dans un dossier.
  • Je peux ouvrir le terminal sur n'importe quel appareil et l'aspect est correct sur tous les appareils.

Inconvénients

  • Je perds l'historique de la console (pas les commandes, juste le défilement) après la reconnexion.

Comment

  1. Sur some_host , courir jupyter-notebook --no-browser --port=$SOME_PORT & .

  2. créer une session some_label dans votre navigateur en pointant sur http://some_host:$SOMEPORT/terminals/some_label . Vous pouvez maintenant vous déconnecter.

  3. Ajoutez vos sessions à vos favoris. Lorsque vous vous reconnecterez, vous pourrez les ouvrir toutes en même temps. Si les onglets sont déjà ouverts, vous devrez les rafraîchir.

Si $SOME_PORT n'est pas ouvert le some_host puis utiliser ssh pour transférer le port et se connecter à http://localhost:$SOME_LOCAL_PORT/terminals/some_label à la place :

ssh -q -N -f -L localhost:$SOME_LOCAL_PORT:localhost:$SOME_PORT $some_host

1voto

Mon problème était simple à résoudre. Sur mon /etc/sysconfig/network-scripts/ifcfg-eth0 était erroné avec le paramètre IPADDR défini à une IP statique et BOOTPROTO=dhcp. Après avoir mis à jour le paramètre BOOTPROTO=static, le problème a été résolu.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X