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.
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
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($@); |
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