Limitez ce qu’une clé peut faire côté serveur pour réduire l’impact en cas de fuite.
objectifs d’apprentissage
- Utiliser options per-key.
- Forcer une commande.
- Limiter les origines.
prérequis
- Accès au compte cible.
- authorized_keys modifiable.
notions clés
- from=.
- command=.
- no-pty, restrict, permitopen.
démonstration guidée
étape 1
Ajouter une clé limitée à une seule commande.
printf 'command="id",no-pty,no-agent-forwarding ' | cat - ~/.ssh/id_ed25519.pub | ssh user@203.0.113.10 'cat >> ~/.ssh/authorized_keys'
étape 2
Restreindre aux IP sources attendues.
echo 'from="203.0.113.0/24" ' | cat - ~/.ssh/id_ed25519.pub | ssh user@203.0.113.10 'cat >> ~/.ssh/authorized_keys'
exercice
Ajoutez restrict et un permitopen pour n’autoriser qu’un port forwarding spécifique.
correction
Exemple d’options combinées.
restrict,permitopen="127.0.0.1:5432" command="/usr/local/bin/readonly.sh" <clé_publique>
quiz éclair
- Quelle option limite l’usage d’un port forwarding précis ?
- a) permitopen
- b) no-user-rc
- c) no-port-forwarding (bloque tous)