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.