Simple commande ssh

Bonjour a tous.

Je bloque sur un truc qui parait simple :
J’aimerai executer une commande simple

systemctl restart usbip.service

sur une machine distante, via SSH

Le plugin script me parait le plus a meme de faire cela. et je pensais le faire via ce script :

#!/usr/bin/php
<?php
$ssh = ssh2_connect('IP/HOSTNAME', 22);
ssh2_auth_password($ssh, 'USER', 'PASSWORD');
$stream = ssh2_exec($ssh, 'systemctl restart usbip.service');

fclose($stream);
ssh2_disconnect($ssh);
?>

Est ce que je suis dans le bon chemin ? car lorsque j’essaie j’ai une erreur suivante :

Erreur exécution de la commande [RAW][Reboot USB-IP service][RESTART USB-IP] : Erreur sur sudo chmod +x 2>&1 valeur retournée : 2. Détails :

( et pas de details, je dois donc avoir un problème dans l’execustion de mon script non ?

Merci de votre aide

2 pistes:

faire un script shell sh plutot que php
utiliser le plugin sshcommander

j’ai justement cherché le plugin, mais sans le trouver dans le market, compatible avec les V4 ?

Pour le script tu aurais un exemple ( je suis pas tres dev, juste un utilisateur chiant ;- )

Merci

ah ? il n’est peut être plus disponible :grin: je l’avais depuis un moment (et je suis bien en V4)
image

pour un script shell, il faut installer sshpass pour pousser le pwd :
apt-get install sshpass

ensuite dans le script shell:
sshpass -p PASSWORD ssh USER@SERVER

C’est dommage, un plugin de lunarok fonctionnel qui n’est plus dispo… normalement c’est l’inverse :wink: ( mode humour noir )

Je test ca asap

1 « J'aime »

Ok je me répond a moi meme, j’ai demandé simplement a ChatGPT de me le mettre en forme.

Voila sa réponse :

#!/bin/bash

# Définir les informations d'identification et l'adresse IP de la machine distante
remote_host="adresse_ip_de_la_machine_distante"
username="votre_nom_utilisateur"
password="votre_mot_de_passe"

# Exécuter la commande via SSH
sshpass -p "$password" ssh -o StrictHostKeyChecking=no "$username@$remote_host" "sudo systemctl restart usbip.service"

# Vérifier le code de retour de la commande SSH
if [ $? -eq 0 ]; then
    echo "La commande systemctl restart usbip.service a été exécutée avec succès sur la machine distante."
else
    echo "Une erreur s'est produite lors de l'exécution de la commande."
fi

Evidement pour une autre commande , remplacer « systemctl restart usbip.service » par la votre, si besoin enlever le sudo.

Ca fonctionne, meme si le passage pour verifier que tout c’est bien passé est un peu superflu.
Bref, solution

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.