Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 10 sur 10
  1. #1
    Invité régulier
    Inscrit en
    mai 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : mai 2011
    Messages : 16
    Points : 5
    Points
    5

    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 :
    $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
    16 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 16 760
    Points : 490 695
    Points
    490 695

    Par défaut

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

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  3. #3
    Invité régulier
    Inscrit en
    mai 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : mai 2011
    Messages : 16
    Points : 5
    Points
    5

    Par défaut

    Code :
    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
    16 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 16 760
    Points : 490 695
    Points
    490 695

    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 :
    $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.

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

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

    Informations forums :
    Inscription : août 2008
    Messages : 500
    Points : 699
    Points
    699

    Par défaut

    J'avais un programme du même genre et je faisais comme ça.
    Code :
    eval '$ssh->login($user,$passwd);';

  6. #6
    Invité régulier
    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 : 5
    Points
    5

    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
    16 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 16 760
    Points : 490 695
    Points
    490 695

    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 !

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  8. #8
    Invité régulier
    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 : 5
    Points
    5

    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 :
    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
    16 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 16 760
    Points : 490 695
    Points
    490 695

    Par défaut

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

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  10. #10
    Invité régulier
    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 : 5
    Points
    5

    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

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
  •