Command Line avec ssh sur raspberry-pi distant

Command Line avec ssh

Je vais partager comment je fais pour lancer des commandes ssh sur des Raspberry-Pi ou autre machines distantes sur le réseau (j’ai une armée de RPi chez moi :slight_smile: )

Je me suis inspirer sur des info. trouvées aussi sur ce forum. Mais je voulais faire une procédure complète ici.

N’hésite pas à me dire si il est possible de faire plus simple ou à corriger les boullettes.

Mon installation est un Home Assistant Supervised avec l’Add-On terminal.

Sur Add-On terminal,

  • Génèrer des clés ssh pou HA (à ne faire qu’une seule fois):
    mkdir -p /config/ssh_keys
    ssh-keygen -t rsa -f /config/ssh_keys/id_rsa -q -P ""
  • Transférer la clé public de HA vers l’hôte distant (à faire pour chaque hôte distant):
    ssh-copy-id -i /config/ssh_keys/id_rsa.pub  pi@192.168.100.5
=> Valider par 'yes'
=> Entrer le mot de passe user 'pi' du Raspberry-Pi distant
  • Tester si une commande ssh passe sur l’ôte distant:
    ssh -i /config/ssh_keys/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no pi@192.168.100.5 'date'
=> Doit retrourner la date sans demander de mot de passe

Exemple de * Command line Switch* à ajouter dans switch.yaml:

 - platform: command_line
   switches:
     lumiere_salon:
       command_on: ssh -i /config/ssh_keys/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no pi@192.168.100.5 /home/dan/bin/setchacon.sh salon on
       command_off: ssh -i /config/ssh_keys/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no pi@192.168.100.5 /home/dan/bin/setchacon.sh salon off

Pour tester, j’ai mis le mode debug pour les command_line

logger:
  default: info
  logs:
    homeassistant.components.mqtt: info
    homeassistant.components.shell_command: debug

Cela permet de voir si la commande passe:

2021-02-04 18:57:29 INFO (SyncWorker_5) [homeassistant.components.command_line.switch] Running command: ssh -i /config/ssh_keys/id_rsa -o UserKnownHostsFile=/dev/null -o Str
ictHostKeyChecking=no pi@192.168.100.5 /home/dan/bin/setchacon.sh salon on
2021-02-04 18:57:36 INFO (SyncWorker_5) [homeassistant.components.command_line.switch] Running command: ssh -i /config/ssh_keys/id_rsa -o UserKnownHostsFile=/dev/null -o Str
ictHostKeyChecking=no pi@192.168.100.5 /home/dan/bin/setchacon.sh salon off

Pour davantage debugger si probleme pour les courageux , je me connecte directement sur le host home-assistant et puis sur le container *homeassistant pour tester ma commande ssh en direct:

$ docker exec -it homeassistant bash
bash-5.0# ssh -i /config/ssh_keys/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no dan@192.168.100.5 date
Warning: Permanently added '192.168.100.5' (ECDSA) to the list of known hosts.
jeu. 04 févr. 2021 19:25:49 CET

Voilà,

Ma configuration

System Health

version core-2021.2.0
installation_type Home Assistant Supervised
dev false
hassio true
docker true
virtualenv false
python_version 3.8.7
os_name Linux
os_version 5.4.72-v7+
arch armv7l
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 5000
Installed Version 1.10.1
Stage running
Available Repositories 709
Installed Repositories 5
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Hass.io
host_os Raspbian GNU/Linux 10 (buster)
update_channel stable
supervisor_version supervisor-2021.01.7
docker_version 19.03.13
disk_total 62.5 GB
disk_used 13.5 GB
healthy true
supported failed to load: Unsupported
supervisor_api ok
version_api ok
installed_addons Terminal & SSH (8.10.0), File editor (5.2.0), Bitwarden RS (0.6.2), Mosquitto broker (5.1), MariaDB (2.2.1)
Lovelace
dashboards 4
resources 4
views 14
mode storage
3 « J'aime »

Merci pour le partage :+1:

Je l’ai mis dans Tutoriels & Partage - Intégration

Hello @vdomos, oui j’utilise le même principe que toi pour lancer des scripts ssh sur un autre raspberry (allumer old tv, afficher sur ce pi) . Je suis également en supervised. J’ai dû juste rajouter un -p 2222 car le port 22 est déjà réservé au pi supportant HA.
Quels commandes exécutes-tu en plus de salon on off ?

1 « J'aime »

Hello @Christianb233,

Je viens juste de tester cette config sur HA.
j’utilisais une autre méthode ou je générais les clés dans le compte root du container mais qui était perdus à chaque mise à jour.Donc pas très pratique.

Pour l’instant, je gère seulement mes 4 lumières du rch et des prises avec le même script qui pilote un vieux dongle Tellstick pour des modules DIO.

Je vais surement en rajouter d’autres pour reboot ou shutdown des Pi.
Surement d’autres choses que cela va me permettre d’intégrer dans HA.

1 « J'aime »

Merci bien pour le partage. TOP

1 « J'aime »