Si vous êtes connecté à un système Linux distant via SSH, il vous suffit d'utiliser la commande exit pour vous déconnecter de SSH.
exit
C'est très bien. Mais que se passe-t-il si vous souhaitez déconnecter un autre utilisateur de la connexion SSH ?
Dans cette astuce rapide, je vais vous montrer comment vous pouvez expulser n'importe quel utilisateur du système.
Déconnecter un utilisateur de la session SSH
Tout d'abord, vérifiez la liste des utilisateurs connectés à votre serveur Linux. Il existe différentes façons de le faire. Je vais utiliser la commande who avec l'option -u
. Cette option affiche l'ID de processus de la session shell de connexion des utilisateurs.
who -u
Voici un exemple de sortie :
[email protected]:~# who -u
abhishek pts/0 2021-04-05 09:25 00:01 31970 (223.180.180.107)
prakash pts/1 2021-04-05 09:26 . 32004 (223.180.180.107)
root pts/2 2021-04-05 09:26 . 32039 (223.180.180.107)
Imaginez maintenant que je veux utiliser prakash
de la session SSH. L'ID de processus de sa session shell est 32004. Si vous arrêtez la session shell de connexion, l'utilisateur sera déconnecté.
Pour ce faire, vous pouvez utiliser la commande kill pour envoyer un SIGHUP
signal. Ce signal est utilisé pour signaler que le terminal de l'utilisateur est déconnecté. Il déconnecte également efficacement tous les processus de la session du terminal de contrôle.
sudo kill -HUP 32004
Bien sûr, pour effectuer une telle action, vous devez être root ou sudo.

Il y a quelques choses que vous devez savoir et faire.
Envoyer un message avant de terminer la session
C'est une bonne idée d'informer l'utilisateur final avant de mettre fin à sa session. Vous pouvez utiliser la commande write pour déposer rapidement un message à l'utilisateur de cette manière :
echo "Your session will end in 2 minutes. Save your work!" | write prakash pts/2
Forcer l'arrêt d'une session SSH si SIGNHUP ne fonctionne pas
Si le signal SIGHUP ne fonctionne pas, envoyez le signal SIGKILL.
sudo kill -9 32004
Vous pouvez également déconnecter un utilisateur de la session sélectionnée si l'utilisateur a plus d'une session SSH
Si le même utilisateur est connecté à partir de plusieurs systèmes ou terminaux, seule la session que vous arrêtez est affectée. Cela n'exclura pas l'utilisateur de toutes les sessions.
C'est le cas lorsque votre session SSH raccroche pour une raison quelconque, comme une déconnexion du réseau. Vous pouvez tuer le terminal et ouvrir une autre session SSH à partir d'un nouveau terminal, mais maintenant vous vous voyez connecté deux fois au système.
Dans ce cas, vous pouvez fermer la session qui ne devrait plus être active.
Vous pouvez identifier quel utilisateur lancer à partir du moment de la connexion qui est visible dans la sortie de who
commande. Ne vous inquiétez pas, le pire des cas serait que vous vous déconnectiez de votre session en cours. Mais vous pourrez alors vous reconnecter.

J'espère que cette astuce rapide vous a aidé à déconnecter un utilisateur d'une session SSH sous Linux. Vos questions et suggestions sont les bienvenues.