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

Modules Perl Discussion :

Net::ssh::perl->cmd ne marche pas


Sujet :

Modules Perl

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Net::ssh::perl->cmd ne marche pas
    Bonjour, je ne parviens pas à exécuter de commandes à distance via Net::SSH:erl.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    #!/usr/bin/perl
     
    use Net::SSH::Perl;
     
    %params=(
       debug => "true");
    $host='10.66.44.180';
    $user="toto";
    $pass='toto';
        my $ssh = Net::SSH::Perl->new($host,%params);
        $ssh->login($user, $pass);
        my($stdout,$stderr,$exit) = $ssh->cmd('ls');
        print "fin\n";
        print "$stdout\n";
     
    %opts=(
           copy_perm => 'true' ,
           resume => 'auto' );
    Voici, ce que j'obtiens à l'éxécution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    toto.fr: Reading configuration data /root/.ssh/config
    toto.fr: Reading configuration data /etc/ssh_config
    toto.fr: Allocated local port 1023.
    toto.fr: Connecting to 10.66.44.180, port 22.
    toto.fr: Remote version string: SSH-2.0-OpenSSH_2.2p1 Ericsson SSH Server for OSE, CXC1328552_R2G01
     
    toto.fr: Remote protocol version 2.0, remote software version OpenSSH_2.2p1 Ericsson SSH Server for OSE, CXC1328552_R2G01
    toto.fr: Net::SSH::Perl Version 1.30, protocol version 2.0.
    toto.fr: Compat match: 'OpenSSH_2.2p1 Ericsson SSH Server for OSE, CXC1328552_R2G01' matches pattern '^OpenSSH[-_]2\.[012]'.
    toto.fr: Connection established.
    toto.fr: Sent key-exchange init (KEXINIT), wait response.
    toto.fr: Algorithms, c->s: 3des-cbc hmac-sha1 none
    toto.fr: Algorithms, s->c: 3des-cbc hmac-sha1 none
    toto.fr: Entering Diffie-Hellman Group 1 key exchange.
    toto.fr: Sent DH public key, waiting for reply.
    toto.fr: Received host key, type 'ssh-dss'.
    toto.fr: Host '10.66.42.100' is known and matches the host key.
    toto.fr: Computing shared secret key.
    toto.fr: Verifying server signature.
    toto.fr: Waiting for NEWKEYS message.
    toto.fr: Enabling incoming encryption/MAC/compression.
    toto.fr: Send NEWKEYS, enable outgoing encryption/MAC/compression.
    toto.fr: Sending request for user-authentication service.
    toto.fr: Service accepted: ssh-userauth.
    toto.fr: Trying empty user-authentication request.
    toto.fr: Authentication methods that can continue: password.
    toto.fr: Next method to try is password.
    toto.fr: Trying password authentication.
    toto.fr: Login completed, opening dummy shell channel.
    toto.fr: channel 0: new [client-session]
    toto.fr: Requesting channel_open for channel 0.
    toto.fr: channel 0: open confirm rwindow 0 rmax 32768
    toto.fr: Got channel open confirmation, requesting shell.
    toto.fr: Requesting service shell on channel 0.
    toto.fr: channel 1: new [client-session]
    toto.fr: Requesting channel_open for channel 1.
    toto.fr: Entering interactive session.
    toto.fr: Sending command: ls
    toto.fr: Requesting service exec on channel 1.
    toto.fr: channel 1: open confirm rwindow 0 rmax 32768
    Voila, ça bloque ici, sans jamais rien m'afficher.
    Comment résoudre ce problème svp ?

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Personne n'a d'idée ?

    Je trouve étrange que ça ouvre 2 channels. Le problème ne viendrait-il pas de là ? Il est écrit dans la doc du module, qu'on ne peut ouvrir qu'un channel à la fois je crois.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Points : 712
    Points
    712
    Par défaut
    Fait gaffe à la version de Net::SSH:erl. Il y a un bug assez ennuyeux sur la v.sion 1.31. IL faut passer à la 1.33. C'est la première chose à faire, à mon avis,

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    J'ai fait la mise à jour. Il y avait un petit bout de module pas à jour. Les "sous-modules" étaient tous en 1.33.

    Sinon, j'ai toujours le même problème. Que puis-je faire ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Points : 712
    Points
    712
    Par défaut
    Tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ./pssh -v toto.fr ls
    pour voir ce qui se passe. Chez moi, ça fonctionne (par contre, il faut une autorisation par clé publique) . Le fait d'ouvrir un deuxième channel ne pose pas de problème, en tout cas sur un openssh. Peut-être que le serveur de ericsson n'est pas totalement conforme ?

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Tu as raison.
    Ericsson empêche de taper des commandes en mode non interactif.

    J'essaierai de simuler des frappes au clavier avec l'utilitaire expect (pas en perl).

    Merci pour ton aide.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Points : 712
    Points
    712
    Par défaut
    Avant de partir sur expect, tente le coup de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        my($stdout,$stderr,$exit) = $ssh->cmd('ls');
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        my($stdout,$stderr,$exit) = $ssh->cmd("",'ls');
    Ca coute pas cher, et je suis curieux de savoir si ca passe.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Excuse moi, j'ai laissé ça en stand bye.
    J'ai testé et ça ne change rien.

    Ericsson ne nous permet pas de lancer des commandes en SSH. On peut juste le faire de manière interactive.
    On va discuter avec eux de notre projet et probablement, leur demander de l'aide.

    Merci en tout cas .

  9. #9
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    tu es sous quel OS, si c'est windows, regarde ce trhead, j'avais déjà parlé de cela : http://www.developpez.net/forums/d58...commande-perl/

Discussions similaires

  1. Perl et Net::SSH::Perl::Auth
    Par SoukoussMan dans le forum Langage
    Réponses: 7
    Dernier message: 23/09/2010, 16h36
  2. Réponses: 6
    Dernier message: 04/11/2008, 10h51
  3. [.NET 2 C#] EnabledViewstate=false ne marche pas
    Par gdkenny dans le forum ASP.NET
    Réponses: 9
    Dernier message: 28/06/2007, 11h53
  4. Réponses: 3
    Dernier message: 16/02/2007, 16h35
  5. Net::SSH::Perl Can't bind socket to port 1023: Adresse déjà utilisée
    Par sohnic dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 27/11/2006, 22h32

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