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

Shell et commandes GNU Discussion :

Utilisation de expect avec ssh


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 98
    Par défaut Utilisation de expect avec ssh
    Bonjour a tous
    ,j'ai fais ce pti script en utilisant l'outil expect. Il consiste a se connecter a un pc distant en ssh, et d'executer des commande dessus.
    Par contre, le mot de passe apparait en clair, donc pour la sécurité c pas le top.
    J'aimerais savoir si il y a un moyen de le cacher ?
    merci d'avance

    #!/usr/bin/expect -f

    set force_conservative 1;

    set timeout 3
    spawn ssh 192.168.0.2
    expect "password: $"
    send "xxxxxx\r"
    interact

  2. #2
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut
    perso je suis partisan de la connection "automatique" par ssh :o
    surtout si c'est une machine sur laquelle tu te loggues souvent.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 98
    Par défaut
    merci kan meme, j'ai réglé le souci en mettant en parametre le mdp

    sinon est ce que vous savez comment on peut récuperer ce qu'une commande nous retourne?
    exemple:
    je tape : rpm -q AdobeReader
    --> ca m'affiche : AdobeReader n'est pas installé

    je tape : rpm -q AdobeReader_fra
    --> ca m'affiche : AdobeReader_fra-7.0.9-1

    j'aimerais tester ce qu'on me retourne.
    Si rpm -q AdobeReader_fra me retourne AdobeReader n'est pas installé
    alors je l'installe
    sinon ne rien faire.

    merci d'avance

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 98
    Par défaut
    maintenant jen suis a ce point là:
    j'ai fais ce script en utilisant l'outil expect. Il se connecte a distance en ssh sur un pc, et lance un script nommé script2 en lui passant un parametre:

    #!/usr/bin/expect -f
    set force_conservative 1;
    set timeout 60
    spawn ssh -l root lapp-dh187
    expect "password: $"
    send "xxxxxx\r"
    #set var 0
    expect " $"
    send -- "
    /root/Desktop/script2 [lindex $argv 0]\r"
    interact
    exit

    Ensuite j'ai ce 2eme script (nommé script2) en bash situé sur le pc distant. Il va tester si le rpm passé en parametre est installé ou non:
    #!/bin/bash
    var=$(rpm -q $1)

    if [ "$var" = "le paquetage $1 n'est pas installé" ]
    then
    echo "installation de $1"
    else
    echo "$1 deja installe"
    fi
    exit

    j'aimerais intégré le 2eme script au 1er, mais le expect ne prend pas en compte le bash (définition des variable, etc...). Je veux faire ca pour ne pas avoir de script sur l'ordinateur distant.

    Y a-t-il une solution ?
    merci d'avance

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Par défaut
    le resultat d'une commande et la variable shell "system" $?
    si = a 0 la commande c'est bien passé sinon erreur donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    rpm -q toto
    echo $?
    1 ==> donc erreur
    if rpm -q toto
    then
     echo "paquet installé"
    else
     echo paquet absent
    fi

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 98
    Par défaut
    merci,
    expect est trop compliqué (c'est du language tcl), alors j'ai changé de technique. Maintenant je me connecte automatiquement en ssh avec ssh-agent.
    voici mon script bash qui doi installer un rpm sur l'ordinateur distant:

    #!/bin/bash
    ssh ordi_distant
    rpm -i AdobeReader.rpm
    exit

    Mais ce c** m'installe le rpm sur mon ordinateur, et pas sur l'ordi distant! Savez vous svp comment faire pour executer les commande qui suivent "ssh" sur le pc distant ?
    merci d'avance

Discussions similaires

  1. Utilisation d'otp avec ssh
    Par manticore dans le forum Réseau
    Réponses: 7
    Dernier message: 01/10/2012, 12h58
  2. utilisation de dll avec diverses compilateurs
    Par Thylia dans le forum C++
    Réponses: 30
    Dernier message: 21/10/2004, 16h30
  3. utilisation de fetch avec select
    Par arwen dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/06/2003, 10h03
  4. Utiliser Borland C++ avec Emacs sous Windows
    Par Eikichi dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 02/03/2003, 08h40

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