Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

sshrestreint [2017/02/21 18:38] (Version actuelle)
frag créée
Ligne 1: Ligne 1:
 +====== Utiliser une session SSH restreinte ======
 +
 +Pour lancer une commande depuis un serveur A sur un serveur B, on peut utiliser SSH.
 +Le principe est simple : sur le serveur cible, on crée un utilisateur ''​cmdauto''​.
 +Pour cet utilisateur,​ on génère un couple certificat/​clé privé avec openssl :
 +
 +<​code>​
 +ssh-keygen -f cle_auto.key -b 2048
 +</​code>​
 +
 +On se retrouve avec deux fichiers :
 +  * ''​cle_auto.key''​ : la clé privée
 +  * ''​cle_auto.key.pub''​ : la clé publique
 +
 +Il faut maintenant copier la ligne contenue dans cle_auto.key.pub sur le serveur B dans le fichier ''/​home/​cmdauto/​.ssh/​authorized_keys2''​.
 +
 +Il est à présent possible depuis le serveur A de lancer des commandes (''​ls''​ par exemple) sur le serveur B en exécutant :
 +
 +<​code>​
 +ssh -i cle_auto.key cmdauto@serveurB ls -la
 +</​code>​
 +
 +Mais si l'​utilisateur cmdauto fait partie des sudoers, il peut être très utile de restreindre les possibilités d'​exécution à distance.
 +Pour cela, il suffit d'​ajouter les paramètres suivants au début de la ligne contenant la clé publique dans le fichier ''​authorized_keys''​ :
 +
 +<​code>​
 +command="/​home/​cmdauto/​ma_commande.sh",​from="​IP_serveurA",​no-agent-forwarding,​no-port-forwarding,​no-pty,​no-user-rc,​no-X11-forwarding ssh-rsa AAAAB3N...
 +</​code>​
 +
 +De cette façon, toute connexion réalisée avec cette clé SSH ne provoquera que le lancement du script ''​ma_commande.sh''​.