Exécuter un script lors de la connexion SSH d'un utilisateur et l'enfermer dedans

Il est parfois bien pratique de pouvoir cantonner un utilisateur à un petit programme ou script lorsqu'il se connecte à une session utilisateur via SSH sur un serveur Linux/BSD/Unix.

OpenSSH offre la possibilité d'empêcher qu'un utilisateur puisse accéder à un shell, et permet de l'enfermer dans l'exécution d'un script.


Forcer l'exécution d'un script à la connexion via SSH

Pour ce faire, vous pouvez utiliser l'option command dans le fichier ~/.ssh/authorized_keys.
Voici comment procéder :

Créer (ou modifier) un script à exécuter automatiquement :

Créez un script (par exemple /chemin/vers/votre_script.sh) qui contient les instructions que vous souhaitez exécuter lorsque l'utilisateur se connecte.
Par exemple :

#!/bin/bash

echo "Bienvenue ! Vous exécutez ce script automatiquement à la connexion."

# Si vous créez ici un petit menu avec des choix, l'utilisateur sera enfermé dans le script,
# sans possibilités d'en sortir sans rompre la connexion SSH.

Assurez-vous que ce script soit exécutable :

chmod +x /chemin/vers/votre_script.sh

Ajouter la clé SSH avec l'option 'command' :

Dans le fichier ~/.ssh/authorized_keys de l'utilisateur concerné, ajoutez une ligne similaire à celle-ci (ou modifiez la ligne existante si la clé est déjà présente) :

command="/chemin/vers/votre_script.sh",no-pty,no-port-forwarding,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCy...

Ces options sont très utiles pour restreindre davantage l'accès et éviter l'utilisation détournée du compte.


⬆️ Retour en haut de la page