Afin d'arriver à nos fins, nous allons utiliser le plugin script et nous allons créer un authentification ssh par clé entre la machine Jeedom et la machine distante.
Pour la facilité du tuto, on va considérer :
- MY_JEEDOM : La machine où Jeedom est installée.
- CP_DST : La machine sur laquelle on veut exécuter une commande/un script.
- IP_DST : L'adresse IP de la machine CP_DST.
- USR_DST : L'utilisateur à partir duquel on lancera la commande/le script sur la machine CP_DST.
- CMD_DST : La commande/le script que l'on veut exécuter
- Se connecter en ssh sur MY_JEEDOM.
- Créer un dossier home pour l'utilisateur www-data : sudo mkdir /home/www-data
- Donner l’appartenance à l'utilisateur www-data sur ce dossier : sudo chown -R www-data:www-data /home/www-data/
- Modifier le chemin du home de l'utilisateur www-data et lui assigner un shell : sudo vi /etc/passwd (ou, si vous préférez l'éditeur nano : sudo nano /etc/passwd )
- Modifier la ligne qui commence par www-data pour qu'elle ressemble à ça :
Code : Tout sélectionner
www-data:x:33:33:www-data:/home/www-data:/bin/bash
- S'identifier en tant que www-data : sudo su - www-data
- Générer une clé rsa : ssh-keygen -t rsa -b 4096
- Des questions vont vous être posées :
Ne rien mettre et taper sur Enter à chaque fois.
Code : Tout sélectionner
Enter file in which to save the key (/home/www-data/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
- Sur la machine CP_DST et connecté en ssh en tant que USR_DST créer le répertoire pour accueillir la clé (S'il n'existe pas) : mkdir ~/.ssh
- Sur la machine MY_JEEDOM toujours en étant identifié en tant que www-data : cat ~/.ssh/id_rsa.pub | ssh USR_DST@IP_DST "cat - >> ~/.ssh/authorized_keys"
- Des questions vont vous être posées :
Code : Tout sélectionner
Are you sure you want to continue connecting (yes/no)? Warning: Permanently added 'IP_DST' (ECDSA) to the list of known hosts. USR_DST@IP_DST's password:
- Taper "yes" et le mot de passe de l'utilisateur USR_DST.
3. Finalisation :
Une fois fini :
- Retourner sur l'utilisateur "normal" de la machine MY_JEEDOM : exit
- Re-modifier le fichier /etc/passwd : sudo vi /etc/passwd
- Modifier la ligne qui commence par www-data pour qu'elle ressemble à ça :
Code : Tout sélectionner
www-data:x:33:33:www-data:/home/www-data:/usr/sbin/nologin
- Créer un script dans le plugin script.
- Ajouter une commande script.
- Modifier les paramètres de la commande :
Code : Tout sélectionner
Type script : Script Type : Action / Défaut Requête : ssh USR_DST@IP_DST sudo CMD_DST
- Enregistrer
- Cliquer sur le bouton Tester de la commande pour voir si cela marche bien.
- Modifier le type de la commande en : Action / Message
- Modifier la requête en : ssh USR_DST@#title# sudo #message#
- Aller sur le dashboard pour tester le widget correspondant à ce script.
- Dans le champ title, saisir IP_DST
- Dans le champ message, saisir CMD_DST
- Cliquer sur le bouton afin de lancer la commande CMD_DST