GNU/Linux >> Tutoriels Linux >  >> Linux

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

SSH (Secure Shell) est le système de réseau chiffré de bout en bout qui permet aux utilisateurs d'accéder à distance du client au serveur ou au système. En raison de son système de sécurité cryptographique asymétrique, il est pratiquement sûr et sécurisé d'accéder au serveur, même à partir d'un réseau client non sécurisé. Mais parfois, en raison d'une inactivité ou d'un mauvais signal réseau, l'accès à distance SSH peut être déconnecté. Quelle qu'en soit la raison, en tant qu'administrateur Linux, il est essentiel de maintenir les sessions et les processus SSH en cours d'exécution après la déconnexion.

Raisons pour lesquelles les sessions SSH sont déconnectées

En un mot, une erreur de proxy de tunnel SSH, un délai d'attente du réseau, l'utilisation du mauvais port réseau ou même le fait de ne pas être connecté à votre système en tant qu'utilisateur root peuvent également vous déconnecter de l'administration à distance SSH. Dans cet article, nous allons discuter de la question la plus fréquemment posée sur SSH ; comment maintenir les sessions et les processus SSH en cours d'exécution après la déconnexion.

1. Continuez à exécuter des sessions SSH à l'aide de l'screen Commande

L'screen La commande est la commande la plus utilisée et la plus utile pour l'administration SSH. L'screen La commande peut résoudre les problèmes de nom d'hôte pour les adresses IPv4 et IPv6. Avec les fonctionnalités root, l'screen La commande peut se déconnecter ou fermer une session du côté client au côté serveur. Si vous êtes un débutant sur Linux SSH, voici quelques CLI qui peuvent vous aider à installer et à trouver les manuels de l'screen commande.

Pour Ubuntu :

$ sudo apt install screen

Pour OpenSUSE :

$ sudo zypper install screen

Pour Arch Linux :

- -
$ sudo pacman -S screen

Pour Red Hat Enterprise Linux :

$ sudo yum install screen

Une fois l'installation terminée, commencez à surveiller l'écran de démarrage de votre système.

$ screen
$ screen --help

Une fois que vous avez l'accès, SSH sur le serveur, vous souhaitez accéder à distance. Si vous prévoyez un long travail de nuit depuis votre station, mais que vous ne voulez pas arrêter votre client SSH, vous pouvez utiliser l'screen commande. Cela peut détacher votre session d'écran, mais pas de soucis, les tâches que vous avez initiées seront terminées.

Pour détacher votre écran appuyez sur Ctrl-A puis Ctrl-D depuis votre clavier. Vous pouvez vous connecter pour suivre l'avancement des travaux à tout moment depuis votre terminal. Pour vous reconnecter ou vous connecter avec l'existant avec la session, utilisez la CLI suivante.

$ screen -r
screen -D -r

2. Continuez à exécuter des sessions SSH en utilisant le tmux Outil

Le multiplexeur tmux ou terminal est un outil très populaire et utile pour les programmeurs et les administrateurs système qui permet aux utilisateurs de basculer d'un programme à l'autre dans le même terminal. Pour maintenir les sessions SSH en arrière-plan, tmux peut être une solution très rapide. Il peut détacher et rattacher des applications où les processus sont exécutés en arrière-plan. Voici les instructions d'installation de tmux pour les distributions Linux.

Pour Arch Linux :

$ sudo pacman -S tmux

Pour Red Hat Enterprise Linux :

$ sudo yum install tmux

Pour Ubuntu :

$ sudo apt-get install tmux

Pour OpenSUSE :

$ sudo zypper install tmux

Après avoir installé tmux , démarrez la tmux session en utilisant les commandes du terminal. L'installation ne prendra pas beaucoup de temps. Une fois l'installation terminée, vous pouvez maintenant commencer avec tmux . Pour démarrer tmux , tapez simplement tmux dans le terminal.

$ tmux

Si vous devez exécuter plusieurs multiplexeurs de terminaux pour que toutes les sessions SSH s'exécutent en arrière-plan, dans ce cas, vous pouvez rencontrer des difficultés pour basculer entre tmux à tmux . Voici les lignes de commande pour basculer d'une forme à l'autre.

$ tmux detach
$ tmux attach
$ tmux attach -t 2

Pour vérifier tous les tmux screen utiliser la list tmux commande.

$ tmux ls

3. Continuez à exécuter des sessions SSH en utilisant le byobu Outil

L'outil byobu est principalement utilisé pour l'administration SSH à distance et la surveillance à l'écran sous Linux. Il s'agit d'un logiciel open source et peut être utilisé avec le tmux ou l'screen outil. Vous pouvez voir l'état actuel, les notifications et les messages avec le byobu outil. Bien que le byobu est installé par défaut avec Ubuntu. Mais si ce n'est pas le cas, vous pouvez l'installer dans votre machine Linux. Pour vérifier si byobu est installé ou non sur votre système en vérifiant les autres versions de byobu.

$ byobu --version

Ensuite, activez byobu, cela vous aidera à maintenir vos sessions SSH en arrière-plan même après une déconnexion.

$ byobu-enable

Ici, les processus d'installation sont expliqués avec CLI.

Pour Ubuntu :

$ sudo apt install byobu

Pour OpenSUSE :

$ sudo zypper addrepo https://download.opensuse.org/repositories/utilities/openSUSE_Leap_42.3/utilities.repo
$ sudo zypper refresh
$ sudo zypper install byobu

Pour Arch Linux :

$ yaourt -S byobu
$ packer -S byobu

Pour Red Hat Enterprise Linux :

$ sudo yum install byobu

Pour Fedora :

$ sudo dnf install byobu

Pour démarrer avec byobu , tapez simplement byobu dans le terminal et appuyez sur Entrée.

$ byobu

Maintenant, si vous utilisez le tmux ou l'screen , vous pouvez choisir et sélectionner l'un d'eux pour le backend collaboratif.

$ byobu-select-backend

Maintenant, vous pouvez gérer et maintenir vos sessions SSH en arrière-plan après la déconnexion, utilisez les touches de fonction du clavier système. Pour démarrer avec SSH aux côtés de byobu, appuyez sur CTRL+SHIFT+F2 depuis votre clavier pour activer l'environnement SSH. Pour déplacer vos sessions SSH en avant et en arrière, vous pouvez utiliser ALT+UP et ALT+DOWN .

Pour déconnecter vos sessions SSH appuyez sur F6 du clavier. Maintenant, si vous cherchez à détacher mais pas à déconnecter la session, c'est parti. Pour détacher les sessions SSH et rester connecté, appuyez sur SHIFT+F6 . Voici une autre commande clavier supplémentaire pour vous. Pour garder uniquement la session d'écran actuelle active et fermer toutes les autres fenêtres, appuyez sur ALT+F6 .

4. Continuez à exécuter des sessions SSH en utilisant le nohup Commande

Le nohup ou 'no hangup' est un outil alternatif très utile pour l'écran ou le tmux. Il permet également aux utilisateurs de maintenir les sessions SSH en cours d'exécution même après leur déconnexion. Le nohup La commande indique au système d'exécuter tous les processus en arrière-plan en évitant que le signal ne raccroche (SIGHUP).

Pour vérifier le nohup manuels et options de votre terminal Linux, tapez la commande suivante dans le terminal et appuyez sur Entrée.

$ nohup options

Pour vérifier les listes de tâches actuellement actives, utilisez le -l commande depuis votre terminal.

$ jobs -l

Maintenant, pour la connexion SSH, pour éviter la perte de connexion et maintenir vos sessions en cours d'exécution après la déconnexion, utilisez les lignes de commande nohup suivant votre travail. Vous pouvez également obtenir la liste de sortie de vos travaux dans un fichier texte en utilisant la commande cat avec la commande nohup.

$ nohup ./hello.sh
$ cat nohup.out

Pour exécuter un processus en arrière-plan, vous pouvez utiliser le & symbole juste après le nohup commande. Par exemple, si je veux tester le ping pour wordpress-408970-1286763.cloudwaysapps.com en arrière-plan, la ligne de commande ressemblera à la ligne suivante ci-dessous. Et quand vous pensez que votre travail est terminé, pour voir le résultat, utilisez le pgrep commande.

$ nohup ping www.ubuntupit.com &
$ pgrep -a ping

5. Continuez à exécuter des sessions SSH en utilisant le disown Commande

Si vous ne disposez pas des privilèges root du système, celui-ci résoudra peut-être votre problème. Le disown La commande peut rendre n'importe quelle tâche non répertoriée dans votre journal système en cours d'exécution. Ainsi, il peut masquer un processus en cours pour éviter toutes les erreurs de déconnexion automatique ou le raccrochage du signal (SIGHUP). Vous pouvez en fait utiliser la commande de gestion de processus diswon pour maintenir vos sessions SSH en cours d'exécution en masquant votre tâche.

Pour supprimer ou masquer votre tâche du gestionnaire de tâches, utilisez la commande diswon dans le terminal.

$ disown <task>

Pour vérifier l'état actuel de la tâche, utilisez la commande shell actuelle.

$ current shell

Vous pouvez également définir une liste de tâches sur une seule ligne de commande de terminal.

$ disown jobs1
$ disown jobs1 jobs2 ... jobsn

Et pour vérifier la liste des tâches, utilisez le -l commande.

$ jobs -l

Pour supprimer tous les travaux en cours de la fenêtre, tapez le -a syntaxe suivie de la commande disown.

$ disown -a

Pour supprimer un seul travail ou le travail en cours d'exécution de la fenêtre, utilisez le -r syntaxe suivie de la commande diswon.

$ disown -r

Maintenant, pour SSH, pour exécuter une tâche en arrière-plan après la connexion de la session, utilisez le -h syntaxe. Ce processus peut maintenir vos sessions SSH en cours d'exécution même après la déconnexion.

$ disown -h jobID
$ disown -h %2

Correction du timeout Erreur de SSH dans RHEL

Lorsque vous êtes connecté au SSH sur Red Hat Enterprise Linux (RHEL), vous pouvez rencontrer un problème de délai d'attente fréquent et perdre votre connexion. Ce problème se produit en raison du temps de réponse non valide du côté client ou du côté hôte. Dans votre répertoire racine Red Hat, vous devez trouver et modifier le sshd_config.txt fichier pour résoudre ces problèmes de délai d'attente. Une fois que vous avez terminé, vous pouvez rétablir votre connexion SSH même après avoir été déconnecté.

Là, à l'intérieur du sshd_config.txt , vous trouverez deux options nommées ClientAliveInterval et ClientAliveCountMax , vous devez modifier ces fichiers journaux pour maximiser le temps de réponse du serveur au client. L'intervalle de temporisation est calculé en multipliant les valeurs de ClientAliveInterval et ClientAliveCountMax.

Tout ce dont vous avez besoin est de modifier la durée de ces deux valeurs en fonction de la durée de réponse de votre système et de votre réseau. Laissez-vous vouloir maximiser le temps 10 minutes pour la fin de l'intervalle client et 5 fois pour le nombre de clients, puis votre registre de texte dans le sshd_config.txt le fichier sera comme ci-dessous. Et puis, redémarrez le SSH.

ClientAliveInterval 10m
ClientAliveCountMax 5

Réflexions finales

Pour un administrateur système, maintenir les sessions et les processus SSH en cours d'exécution est un travail crucial pour satisfaire le client et accomplir la tâche. Se déconnecter et perdre des sessions fréquentes est très ennuyeux et gênant. Ainsi, dans cet article, nous avons essayé de discuter et d'illustrer les raisons pour lesquelles les sessions SSH sont déconnectées et avons également décrit toutes les méthodes possibles pour maintenir les sessions SSH en cours d'exécution après la déconnexion.

Si vous avez déjà vécu les tracas de la déconnexion d'une session SSH et savez à quel point cela peut être ennuyeux, veuillez partager votre expérience avec nous. Et commentez également si vous avez quelque chose à ajouter ou demandez quoi que ce soit en rapport avec ce message dans la section des commentaires. N'oubliez pas de partager ce message avec vos amis sur les réseaux sociaux.


Linux
  1. 5 façons de maintenir les sessions et les processus SSH à distance en cours d'exécution après la déconnexion

  2. Ssh - Continuer à exécuter les processus après la déconnexion de la session Ssh ?

  3. Ssh - Comment exécuter un script immédiatement après la connexion via Ssh ?

  4. Comment utiliser les booléens dans la coquille de poisson ?

  5. Comment répertorier les sessions d'écran en cours ?

Tutoriel complet sur la configuration des clés SSH et des connexions SSH

Comment SSH dans un répertoire particulier sous Linux

Comment configurer le transfert X11 à l'aide de SSH sous Linux

Comment effectuer une sauvegarde Linux à distance à l'aide de SSH

Comment utiliser SSH pour se connecter à un serveur distant

Comment :Administration à distance de FreeBSD