Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Discussion: Python et SSH

  1. #1

    Profil pro Othmane BENZINA
    Inscrit en
    mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Nom : Othmane BENZINA
    Localisation : Maroc

    Informations forums :
    Inscription : mai 2012
    Messages : 15
    Points : -3
    Points
    -3

    Par défaut Python et SSH

    Salut,

    SVP je cherche comment faire pour q'un script s'execute apres la connexion ssh c-a-d quand je tape la commande ssh user@IPdist la connexion ssh s'établisse et un script s'execute sur la console.

    j'ai fait une socket mais quand je fait la connexion le script s'execute sur le serveur et affiche rien dans la machie client

  2. #2
    Expert Confirmé Avatar de PauseKawa
    Homme Profil pro Patrice BLANGARIN
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    juin 2006
    Messages
    2 720
    Détails du profil
    Informations personnelles :
    Nom : Homme Patrice BLANGARIN
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2006
    Messages : 2 720
    Points : 3 953
    Points
    3 953

    Par défaut

    Bonjour,

    Lorsque vous parlez de script de quoi s’agit il ?
    Une proposition:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Python 3.2.2 (default, Sep  5 2011, 22:09:30) 
    [GCC 4.6.1] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> script = "ls -Al > testclient.txt | tail testclient.txt > second.txt"
    >>> import subprocess
    >>> retour = subprocess.call(["ssh", "patrice@127.0.0.1", script])
    patrice@127.0.0.1's password: 
    >>> quit()
    patrice@Zeus:~/Bureau$ ls second.txt
    ls: impossible d'accéder à second.txt: Aucun fichier ou dossier de ce type
    patrice@Zeus:~/Bureau$ cd ..
    patrice@Zeus:~$ pwd
    /home/patrice
    patrice@Zeus:~$ ls second.txt
    second.txt
    patrice@Zeus:~$ cat second.txt 
    -rw-r--r--  1 patrice patrice        403 2007-10-29 01:54 webradios.m3u
    -rw-r--r--  1 patrice patrice      37360 2008-05-08 13:14 wget-log
    -rw-r--r--  1 patrice patrice     105485 2008-07-13 18:58 wget-log.1
    -rw-r--r--  1 patrice patrice      14069 2008-07-10 09:17 wiki xubuntu
    -rw-r--r--  1 patrice patrice    1449575 2007-08-18 15:27 Win98SE driver 4.0.100.1190.exe
    drwxrwxr-x  4 patrice patrice       4096 2012-04-01 09:29 .wine
    -rw-------  1 patrice patrice      11466 2009-07-26 09:40 wsbnote.bck
    -rw-------  1 patrice patrice         49 2012-05-26 06:02 .Xauthority
    -rw-r--r--  1 root    root          5179 2012-04-28 17:32 xorg.conf.new
    -rw-------  1 patrice patrice      30767 2012-05-26 09:52 .xsession-errors
    La différence de répertoire vous montre bien que le script est exécuté sur la 'machine distante'

    @+
    Merci d'utiliser le forum pour les questions techniques.

  3. #3
    Membre confirmé Avatar de Balbuzard
    Inscrit en
    août 2008
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 29

    Informations forums :
    Inscription : août 2008
    Messages : 379
    Points : 231
    Points
    231

    Par défaut

    subprocess.call pour lancer la commande ssh, c'est vraiment n'importe quoi. Il a posté sa demande dans le forum python, donc du bash n'a à priori rien à y faire, non?

    Pour le SSH en python, le mieux est de passer par le module paramiko. Ensuite, pour qu'une commande soit exécutée, soit on tag la clef publique ssh placée sur le serveur avec le script à lancer (seule ce script pourra $etre exécuté avec la clef utilisée par le client ssh) soit on lance les commandes à partir de paramiko.
    ZORRO
    Plus Vengeur que Masqué

  4. #4
    Expert Confirmé Avatar de PauseKawa
    Homme Profil pro Patrice BLANGARIN
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    juin 2006
    Messages
    2 720
    Détails du profil
    Informations personnelles :
    Nom : Homme Patrice BLANGARIN
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2006
    Messages : 2 720
    Points : 3 953
    Points
    3 953

    Par défaut

    Bonsoir,

    Citation Envoyé par Balbuzard Voir le message
    subprocess.call pour lancer la commande ssh, c'est vraiment n'importe quoi. Il a posté sa demande dans le forum python, donc du bash n'a à priori rien à y faire, non?
    Et donc vous avez compris dans la demande du PO qu'il demandais comment utiliser paramiko pour exécuter un script distant via SSH et vous avez donner la solution ? Chapeau.
    Apprenez à comprendre 'qui est le PO' et quelle solution sera la plus adaptée comme réponse.

    @+
    Merci d'utiliser le forum pour les questions techniques.

  5. #5
    Expert Confirmé
    Avatar de fred1599
    Homme Profil pro Fred
    Enseignant
    Inscrit en
    juillet 2006
    Messages
    1 820
    Détails du profil
    Informations personnelles :
    Nom : Homme Fred
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : juillet 2006
    Messages : 1 820
    Points : 2 818
    Points
    2 818

    Par défaut

    Surtout qu'il ne demande pas comment utiliser ssh en python, mais comment détecter l'utilisation de la commande ssh.

    une simple commande bash pourrait suffire

    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  6. #6
    Membre confirmé Avatar de Balbuzard
    Inscrit en
    août 2008
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 29

    Informations forums :
    Inscription : août 2008
    Messages : 379
    Points : 231
    Points
    231

    Par défaut

    Du coup, éventuellement en utilisant une clef ssh tagguée.

    Lors de la connexion, le script mis en paramètre de la clef s'exécute, et lorsqu'il a terminé son exécution, la connexion se coupe proprement.

    On devra juste utiliser une autre clef dans le cas d'une autre connexion "normale";

    EDIT: Je viens de me rendre compte que j'avais déjà proposé cette solution... PauseKawa, je parlais de paramiko pour établir des commandes ssh, et sinon de clef tagguées pour l'exécution d'un script en particulier;

    Ensuite, pour qu'une commande soit exécutée, soit on tag la clef publique ssh placée sur le serveur avec le script à lancer
    Enfin, de toute façon, notre PO est bien silencieux, peut-être a-t-il déjà trouvé la solution :/
    ZORRO
    Plus Vengeur que Masqué

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •