1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    mai 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : mai 2011
    Messages : 16
    Points : 12
    Points
    12

    Par défaut Password erroné avec Net::SSH::Perl

    Bonjour,
    voici mon problème. Je développe une interface avec Perl/tk et j'utilise le module Net::SSH:: Perl pour lancer si besoin des travaux sur un cluster. Cette interface est destinée à des utilisateurs différents qui devront donc fournir leurs identifiants pour pouvoir se connecter sur le cluster. Je récupère ses identifiants classiquement avec des widgets entry et lorsque ces identifiants sont corrects, tout se passe pour le mieux.

    Néanmoins, si l'utilisateur rentre un mot de passe erroné, le programme envoie un message d'erreur au moment du $ssh->login
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ssh->login($username, $password);
    et il stoppe son exécution. Cet arrêt m'empèche de gérer l'erreur et d'envoyer un message alertant l'utilisateur qu'il ne s'est pas identifié correctement. Je n'ai pas trouvé de solution à ce pb.

    Merci par avance pour toute aide.

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    18 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 18 455
    Points : 493 926
    Points
    493 926

    Par défaut

    Peux-tu nous mettre ton code, pour que l'on puisse faire des tests et l'améliorer ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    mai 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : mai 2011
    Messages : 16
    Points : 12
    Points
    12

    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    my $ssh = Net::SSH::Perl->new($host);
     
    utf8::encode ($username); 
    utf8::encode ($password);
     
    $ssh->login($username, $password);
     
    utf8::encode ($commande); 
     
    $ssh->cmd($commande);
    Et donc avec "Tk::Error: Permission denied at /...... line 1990" en message d'erreur + des erreurs générées par ce pb quand on utilise un mot de passe erroné.

    Pour rappel, les identifiants du ssh sont entrés par l'utilisateur et le but et de gérer une éventuelle erreur de saisie. Quand les identifiants sont bons, le code marche normalement.

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    18 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 18 455
    Points : 493 926
    Points
    493 926

    Par défaut

    Il faudrait montrer plus de code, Tk compris.
    C'est la conception de ton programme qui nous permettra de t'aider.
    Tu pourrais déjà intercepter un éventuel souci via un or die ou or error().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ssh->login($username, $password) or error_login();
    error_login() pourrait être une procédure lançant un popup, un widget de message d'erreur, etc.

  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 : 711
    Points
    711

    Par défaut

    J'avais un programme du même genre et je faisais comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eval '$ssh->login($user,$passwd);';

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : avril 2012
    Messages : 7
    Points : 7
    Points
    7

    Par défaut Intércepter l'erreur de connexion SSH

    djibril, as-tu trouver un moyen ? peux-tu le partager s'il te plait car moi aussi j'ai un souci similaire. comme tu dis j'ai utiliser eval mais çà ne résoud pa le problème.merci

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    18 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 18 455
    Points : 493 926
    Points
    493 926

    Par défaut

    Citation Envoyé par dm.mya Voir le message
    djibril, as-tu trouver un moyen ? peux-tu le partager s'il te plait car moi aussi j'ai un souci similaire. comme tu dis j'ai utiliser eval mais çà ne résoud pa le problème.merci
    Le demandeur d'aide était Kroui et pas moi !

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : avril 2012
    Messages : 7
    Points : 7
    Points
    7

    Par défaut Intércepter l'erreur de connexion SSH

    Ah d'accord, j'étais totalement dessus que je ne regardais pas. J'ai utilisé ce que tu a proposé mais çà ne marche pas, idem pour eval.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #!/usr/bin/perl -w
    use warnings;
    use strict;
    use Net::SSH::Perl;
     
     
      my $ssh = Net::SSH::Perl->new("$host");
     
      eval { $ssh->login('user', 'pass'); };
      $error = "Login or password error.\n" if($@);

  9. #9
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    18 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 18 455
    Points : 493 926
    Points
    493 926

    Par défaut

    bon, sinon, quel est le souci de ton programme ?

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : avril 2012
    Messages : 7
    Points : 7
    Points
    7

    Par défaut Intércepter l'erreur de connexion SSH

    en fait, je veux que le message "Login or password error" soit assigner à la variable $error au cas où le login ou le mot de passe est erroné. A l'état actuel, si je fait exprès de mettre un faux mot de passe, $error ne contient rien et j'ai le retour software error :"permission denied at ..." sur le browser

Discussions similaires

  1. Qsub avec Net::SSH::Perl
    Par Kroui dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 19/05/2011, 17h12
  2. Perl et Net::SSH::Perl::Auth
    Par SoukoussMan dans le forum Langage
    Réponses: 7
    Dernier message: 23/09/2010, 15h36
  3. Net::ssh::perl->cmd ne marche pas
    Par Songohan dans le forum Modules
    Réponses: 8
    Dernier message: 21/11/2008, 10h56
  4. Réponses: 6
    Dernier message: 04/11/2008, 09h51
  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, 21h32

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