IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Raspberry Pi Discussion :

Exécution d'un programme avec SSHPASS


Sujet :

Raspberry Pi

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2021
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2021
    Messages : 116
    Points : 49
    Points
    49
    Par défaut Exécution d'un programme avec SSHPASS
    Bonjour,

    Ma problématique : exécuter un script .sh sur une machine linux à partir d'une commande ssh depuis un raspberry.
    L'objectif étant de piloter un arrêt automatique de la machine linux.
    Le script seul lancé depuis le terminal linux fonctionne très bien. Par contre je n'arrive pas à le lancer en ssh depuis le raspberry, et je ne comprends pas pourquoi.

    Pour lancer ce script a partir du raspberry, j'utilise sshpass, via cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sudo sshpass -p "mdp" ssh root@192.168.1.12 ./lancement_script.sh
    au préalable de cette commande je fais une connexion ssh avec la machine linux, histoire d'établir les clefs privées / publiques, et s'assurer qu'il n'y a pas de problèmes avec le mot de passe et l'adresse IP.

    Par ailleurs sur la machine linux je tape : sudo chmod +x lancement_script.sh

    Et depuis le raspberry, une fois connecté en ssh sur la machine linux, je tape ./lancement_script.sh et le script s'exécute correctement.

    Dans le script on retrouve :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/bin/bash
    echo "arret de la machine"
    poweroff now
    mais quand je le fais avec sshpass ça ne fonctionne pas.. Si vous avez des idées, je suis preneur.
    Merci.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 876
    Points
    1 876
    Par défaut
    Hmm... déjà pourquoi exécuter cette commande en sudo localement ? Je vois pas la raison. Rien ne vous empêche de vous connecter en tant que root sur un autre système, tout en étant un utilisateur lambda sur votre poste. Il suffit seulement d'avoir le bon mot de passe.
    Un message d'erreur quelconque ?
    Ensuite, ce fameux script .sh, où est-il stocké ? Je vous conseille de mettre le chemin complet, pas juste un chemin relatif.
    Vous n'avez pas besoin d'invoquer un script sur une machine distante pour une opération aussi basique: il est possible de passer des commande à exécuter sur le serveur distant directement dans votre ligne de commande SSH.
    Enfin, au lieu de vous connecter en SSH avec un mot de passe, je vous conseille d'utiliser l'authentification par clé à la place.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2021
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2021
    Messages : 116
    Points : 49
    Points
    49
    Par défaut Raspberry execution auto programme avec SSHPASS
    Bonjour,
    Merci pour la réponse,
    J'ai corrigé le problème du SSHPASS en mettant le mdp entre 'cote' ,
    Effectivement depuis le terminal, lancer la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sshpass -p'motdepass' ssh root@10.2.10.10 "poweroff now"
    fonctionne, mais pour rendre cette commande automatique, je l'intégre dans le crontab, mais aucun lancement lancement automatique se fait.. J'ai essayé pas mal de commandes / syntaxes, mais ça n'a pas l'air de fonctionner..

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    33 9 * * *    root /home/pi/cccc.sh
    Bon, j'ai compris ce qui n'allait pas... entre la syntaxe -p'motdepass' et l'utilisateur dans le crontab qui n'était pas bon (je mettais root au lieu de pi ), maintenant c'est mieux.

    Merci pour l'aide.

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 379
    Points : 19 060
    Points
    19 060
    Par défaut
    Salut à tous.

    Il y a une totale aberration dans ce que vous faites. Vous dites utiliser le protocole SSH et vous précisez dans la commande votre mot de passe.
    Quand vous vous connectez à distance à votre compte linux, utilisez vous encore un mot de passe ? Si la réponse est oui, votre connexion SSH ne fonctionne pas.

    Il faut créer la clef SSH et la mettre dans un fichier de nom "Authorized_keys" qui se trouve dans le répertoire ".ssh" à la racine de votre compte linux. J'utilise la raspberry et je l'ai fait aussi bien dans le compte "root" que dans le compte "pi". Il y a plusieurs didacticiels sur le net qui explique comment créer ces fameuses clefs SSH.

    Pour me connecter, j'utilise putty depuis mon ordinateur sous Windows 10 Pro, où j'ai renseigné le chemin vers ma clef privée. Pour transférer des fichiers, j'utilise "pscp.exe" de Putty. voici un exemple de transfert :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    
    chcp 1252 > nul
    
    set PATH=C:\Program Files (x86)\PuTty;%PATH%
    
    pscp.exe -load xxxx -p   F:\Site-04\index.php xxxx@ssh-xxxx.net:/home/xxxx/www
    
    echo.
    pause
    Comme vous pouvez le constater, le mot de passe n'apparait pas dans mon script.

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probléme dll à l'exécution d'un programme avec visual studio
    Par NGeVtC87 dans le forum Visual Studio Team System
    Réponses: 3
    Dernier message: 24/03/2022, 23h21
  2. [Python 3.X] Déclenchement de l'exécution d'un programme avec clavier
    Par Elinux dans le forum Général Python
    Réponses: 3
    Dernier message: 02/07/2018, 11h47
  3. [Linux] - Exécution d'un programme avec une librairie qui dépend d'une autre librairie
    Par neuromencien dans le forum Bibliothèques, systèmes et outils
    Réponses: 1
    Dernier message: 05/02/2017, 11h50
  4. Problème d'exécution de mon programme avec Launch4J
    Par Mario Cayer dans le forum Général Java
    Réponses: 5
    Dernier message: 15/12/2013, 19h35
  5. [fedora 9,eclipse CDT,Qt] pb d'exécution d'un programme avec GMP
    Par olivier57b dans le forum Eclipse C & C++
    Réponses: 0
    Dernier message: 11/08/2008, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo