SSH vers un autre raspberry

Bonjour,

J’essaie d’automatiser l’extinction et le redémarrage d’un autre raspberry par commande ssh.

Depuis le terminal ssh de HA quand je fais ssh compte@IP « sudo shutdown -h now » ça fonctionne sans problème et surtout sans mot de passe car j’ai crée ma paire de clés RSA avant.

Par contre quand j’ajoute ça dans mon fichier de configuration.yaml et que j’exécute les commandes dans la partie outils de dév. ça me dit :

stdout: ""
stderr: Host key verification failed.
returncode: 255
shell_command:
  moode_player_shutdown: 'ssh compte@IP sudo shutdown -h now'
  moode_player_reboot: 'ssh compte@IP sudo reboot'

Si quelqu’un à une idée ou une autre méthode pour ce type d’action vers un autre raspberry je suis preneur.

Merci

Ma configuration


[center]## System Information

version core-2025.7.1
installation_type Home Assistant OS
dev false
hassio true
docker true
container_arch aarch64
user root
virtualenv false
python_version 3.13.3
os_name Linux
os_version 6.6.74-haos-raspi
arch aarch64
timezone Europe/Paris
config_dir /config
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 15.2
update_channel stable
supervisor_version supervisor-2025.06.2
agent_version 1.7.2
docker_version 28.0.4
disk_total 57.9 GB
disk_used 4.7 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Samba Backup (5.2.0), File editor (5.8.0), Advanced SSH & Web Terminal (21.0.2)
Dashboards
dashboards 2
resources 0
views 1
mode storage
Network Configuration
adapters lo (disabled), end0 (enabled, default, auto), hassio (disabled), docker0 (disabled), veth2404248 (disabled), vethe4379ac (disabled), vethb6f34ab (disabled), veth45ce217 (disabled), vethb34d03f (disabled), vetha060be8 (disabled), vethcdca792 (disabled), vethff668a3 (disabled)
ipv4_addresses lo (127.0.0.1/8), end0 (IP/24), hassio (172.30.32.1/23), docker0 (172.30.232.1/23), veth2404248 (), vethe4379ac (), vethb6f34ab (), veth45ce217 (), vethb34d03f (), vetha060be8 (), vethcdca792 (), vethff668a3 ()
ipv6_addresses lo (::1/128), end0 (2a01:cb04:d77:7800:17e1:886b:e3ea:3325/64, fe80::194e:f559:2d45:7a26/64), hassio (fe80::18e2:f8ff:fe50:5ede/64), docker0 (fe80::d8c2:19ff:feb7:869b/64), veth2404248 (fe80::c823:46ff:fe57:522e/64), vethe4379ac (fe80::e082:2ff:fee2:3dd0/64), vethb6f34ab (fe80::3ce1:bfff:fe0f:cb71/64), veth45ce217 (fe80::ac43:52ff:fe61:9a34/64), vethb34d03f (fe80::2821:baff:fe79:f5fa/64), vetha060be8 (fe80::5884:9aff:fe3e:85ea/64), vethcdca792 (fe80::98f6:deff:fe8d:7cf2/64), vethff668a3 (fe80::ec1b:56ff:fe2b:6d7/64)
announce_addresses IP, 2a01:cb04:d77:7800:17e1:886b:e3ea:3325, fe80::194e:f559:2d45:7a26
Recorder
oldest_recorder_run 24 juin 2025 à 18:07
current_recorder_run 5 juillet 2025 à 20:52
estimated_db_size 60.11 MiB
database_engine sqlite
database_version 3.48.0
[/center]

Tu as quoi dans le fichier ~/.ssh/known_hosts ? Supprime le et retente à nouveau.

Déjà merci pour la réponse rapide,

cat .ssh/known_hosts, affiche 2 entrées j’ai l’impression :

IP ssh-ed25519 AAA…
et
IP ssh-rsa …

Bonjour,
Ce sujet a déjà été abordé dans d’autres posts.
Si tu cherches sur le forum… tu trouveras 2 posts tutoriels expliquant comment se connecter à un raspberry distant à partir de HA avec ssh
Command Line avec ssh sur raspberry-pi distant
Shell_command comment lancer un processus sur une machine distante en YAML (tuto)

Dans la commande ssh tu peux forcer ta clé avec ssh -i /chemin de la clé privée …

Je vais le re-refaire mais c’est ce que j’ai suivi, j’ai crée les clés envoyé vers le distant etc et quand je test en terminal la connexion ssh sans mot de passe fonctionne bien.
C’est juste dans l’automatisation que ça passe pas.
Merci pour l’autre lien.

Je vais tester le -i dans l’automatisation, car en terminal avec ou sans-i ça passe bien, merci

Ah, intéressant en mettant -i ~/.ssh/id_rsa dans ma command j’ai ce message d’erreur :

Identity file /root/.ssh/id_rsa not accessible: No such file or
  directory.

Il doit y avoir un truc entre ce que je crée avec mon compte et l’exécution qui semble se faire en root.

Oui les scripts ne sont pas là ces en root bien sûr tu dois assigner les droits idoine

Il fait mettre le fichier dans un répertoire lisible car le répertoire .ssh doit rester en droit restreints

J’ai trouvé et appliqué un chmod à 700 sur le dossier .ssh.

Ensuite j’exécute une

shell_command:
shutdown: 'ssh user@IP "sudo shutdown -h now"'

qui est stocké dans configuration.yaml.

ps : je suis une quiche en linux :innocent:

Et ça donne quoi ? Avec le changement de droits

Ah pardon, je voulais dire que j’avais déjà changé les droits avant l’exécution.

Bonjour,
tu pourrais utiliser ça:

tu auras directement un bouton, redémarrer ou arrêter + les informations système.

Ça fonctionne soit par MQTT ou par l’api de HA.

edit:
il y a même une V2 qui vient de sortir

1 « J'aime »

Sauf que les droits que tu as applique 'e le dont que pour le propriétaire

Copie la clé ailleurs donne lui les droits 777 (méthode bourrin mais tjs efficace) va devrait être ok

Salut,

alors j’ai copié mon fichier id_rsa vers /tmp, ensuite j’ai appliqué chmod 777 sur /tmp, j’ai dû redescendre à 600 car sinon j’ai un refus :smiley: Permissions 0777 for '/tmp/id_rsa' are too open.

Je test en terminal ssh -i /tmp/id_rsa user@IP "sudo shutdown -h now"
et ça fonctionne bien

Ensuite je mets cette commande dans mon fichier configuration.yaml et erreur :

Identity file /tmp/id_rsa not accessible: No such file or directory.
  Host key verification failed.

Merci je vais regarder ça, mais je pensais faire simple en lançant une pauvre commande SSH :smiley:

Il faut que le fichier appartienne au bon utilisateur c’est pas qu’une histoire de droits et évite /tmp

Quel est le compte utilisé par HA pour lancer des automatisations ? Root ?

Du coup faut que je régénère mes clés ainsi que le dossier avec ce compte ?

Est-ce que je pourrais cumuler les droits de mon user et celui des automatisations dans un chmod et appliquer sur le dossier et la clé ?

J’ai choisi tmp vu qu’on partait sur un chmod 777 pas trop fan de mettre un full control sur un autre dossier :slight_smile: mais toute façon ça passe pas le 777.

Du coup je pourrais créer un dossier à la racine ?

Merci

justement il ne semble pas que ce soit le cas

je ne vois pas le rapport en plu c’est un dossier spécial qui est la plupart du temps a chaque reboot c’est pas trop un dossier de « travail » !

tiens une idée si tu fais un script qui vas générer un fichier texte vide avec la commande touch on vas savoir qui est l’utilisateur qui lance les scripts
j’ai cherché dans a doc et je n’ai rien vu a ce sujet

777 = full control pour moi donc ça me semblait logique de mettre ça dans un dossier pas important, donc tmp me paraissait être une cible de choix.

En tout cas merci pour ton aide, j’ai l’impression de vouloir faire un truc incroyable.

Bon j’ai juste fait un whoami dans une automatisation et lors de l’exécution ça me dit ça :

stdout: root
stderr: ""
returncode: 0