Précédent   Forum du club des développeurs et IT Pro > Autres langages > Perl > Interfaces Graphiques
Interfaces Graphiques Forum d'entraide pour les interfaces graphiques en Perl (TK, GTK, Tk-Zinc, 2D et 3D avec OpenGPL, ....). Avant de poster, veuillez consulter la FAQ Perl/Tk , les cours Perl.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 24/05/2011, 11h51   #1
Kroui
Invité de passage
 
Inscription : mai 2011
Messages : 16
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 16
Points : 4
Points : 4
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.
Kroui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 19h38   #2
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 809
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 809
Points : 31 660
Points : 31 660
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 !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 09h10   #3
Kroui
Invité de passage
 
Inscription : mai 2011
Messages : 16
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 16
Points : 4
Points : 4
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.
Kroui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 13h14   #4
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 809
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 809
Points : 31 660
Points : 31 660
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 !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 22h04   #5
thierry.chich
Membre chevronné
 
Inscription : 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 : 657
Points : 657
Envoyer un message via Skype™ à thierry.chich
J'avais un programme du même genre et je faisais comme ça.
Code :
eval '$ssh->login($user,$passwd);';
thierry.chich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2012, 07h12   #6
dm.mya
Invité de passage
 
Homme
Inscription : avril 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2012
Messages : 7
Points : 4
Points : 4
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
dm.mya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2012, 09h00   #7
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 809
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 809
Points : 31 660
Points : 31 660
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 !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2012, 14h05   #8
dm.mya
Invité de passage
 
Homme
Inscription : avril 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2012
Messages : 7
Points : 4
Points : 4
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($@);
dm.mya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2012, 14h13   #9
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 809
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 809
Points : 31 660
Points : 31 660
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 !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2012, 14h44   #10
dm.mya
Invité de passage
 
Homme
Inscription : avril 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2012
Messages : 7
Points : 4
Points : 4
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
dm.mya est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h51.


 
 
 
 
Partenaires

Hébergement Web