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...
- command : indique le script à exécuter automatiquement lors de la connexion.
- no-pty : empêche l'allocation d'un terminal (tty), rendant impossible l'ouverture d'un shell interactif.
- no-port-forwarding : empêche le port forwarding via SSH.
- no-X11-forwarding : empêche le forwarding graphique X11.
Ces options sont très utiles pour restreindre davantage l'accès et éviter l'utilisation détournée du compte.
↑ Haut de page