Puis-je me connecter ou afficher des sessions ssh abandonnées?


14

J'ai une instance virtuelle de redhat en cours d'exécution que je peux sshdepuis n'importe quel hôte du réseau d'entreprise. Ma sshsession a été abandonnée lors de l'exécution de certains scripts qui m'ont peut-être causé ou non la déconnexion. La whocommande localement répertorie toujours la connexion supprimée. La reconnexion avec sshdémarre une toute nouvelle session. Existe-t-il un moyen de se connecter à la session d'origine? Sinon, puis-je le tuer? J'ai un accès root et physique. Je n'utilisais pas d'écran dans la session d'origine.

Réponses:


11

Vous souhaitez utiliser l' écran sur la télécommande, puis lorsque vous revenez en arrière, vous vous reconnectez à cette instance d'écran.

mais non, vous ne pouvez pas vous reconnecter à une session ssh en soi, vous devez utiliser screen (ou quelque chose d'autre comme ça pour faciliter cela).

Regardez cette question pour au moins une autre option et quelques différences entre elle (tmux) et l'écran. après avoir lu la réponse à cette question ... je dirais que tmux est mieux

oh et oui, vous pourriez killle processus (y compris le bash fourchu) pour l'arrêter, vous pourriez essayer skillde tuer l'utilisateur par son nom, mais je soupçonne que si cet utilisateur est root ... il pourrait essayer de tuer des choses qu'il ne peut pas.

la réponse a été mise à jour plusieurs fois


4

Par défaut, vous ne pouvez pas vous reconnecter à une session ssh abandonnée. Cependant, vous pouvez configurer des processus dans une session ssh, auxquels vous pouvez vous reconnecter après avoir rétabli une nouvelle session ssh.

Ce que vous voulez utiliser est un écran ou encore mieux un wrapper convivial autour de l'écran appelé byobu.

L'écran vous permet d'exécuter plusieurs sessions de terminal virtuel dans la même session ssh. Un tutoriel et des pages d'aide sont disponibles.

byobu est un wrapper qui permet d'ouvrir facilement de nouveaux écrans avec une simple touche de fonction au lieu d'une combinaison de touches de ctrl-a. Il affiche également une ligne d'état avec tous les terminaux virtuels ouverts qui peuvent être nommés.

Une autre fonctionnalité intéressante est le fait que tout votre écran peut rester en place pendant que votre connexion ssh est déconnectée. Vous vous connectez à nouveau via ssh et appelez byobu et tout est comme avant.

Enfin des captures d' écran de byobu.


3

Comme mentionné, l'écran est probablement votre meilleur pari. Si / lorsque votre session est abandonnée, elle continuera de fonctionner. Tapez 'screen -list' pour voir les sessions disponibles et 'screen -r' avec la session que vous voulez. Un petit conseil, vous pouvez tabuler la chaîne de session plutôt que de copier / coller le tout.

Cependant, l'écran peut être ennuyeux. Dans mon client, vous ne pouvez pas facilement faire défiler vers le haut pour voir l'historique dans la console. Il agit un peu différemment de ce que vous attendez. Si tout ce que vous voulez faire est de vous assurer que vos procs de longue durée ne sont pas tués, utilisez 'nohup'. Cela empêchera votre proc d'être arrêté lorsque vous perdez votre connexion. Assurez-vous cependant d'envoyer votre sortie de proc à un fichier si vous voulez le surveiller. De plus, si vous avez un script bash, je pense que vous devez appeler explicitement «bash» devant nohup. Un exemple...

nohup bash ./myscript.sh> output.log 2> & 1 &

Cela signifie nohup, pour éviter de tuer le proc, bash pour appeler explicitement bash si vous avez des choses spécifiques à bash dans votre script, votre script appelé 'myscript.sh' dans le répertoire courant, output.log comme fichier pour envoyer à la fois std et erreur vers, et le '&' à la fin pour exécuter le proc en arrière-plan.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.