Bonjour,
je dois créer un programme qui se connecte en ssh à un poste distant.
Les login, mot de passe et nom de l'hote doivent être récupérés à partir d'un fichier.

Si je fais mon programme comme ça, en donnant directement les variables $host, $username et $password, le programme marche bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
#!/usr/bin/perl -w
use strict;
use Net::SSH::Perl;
 
my $host = "********";
my $username = "********";
my $password = "********";
 
my $ssh = Net::SSH::Perl->new($host);
$ssh->login($username, $password);
 
$ssh->cmd('**commande à effectuer**');
Par contre si je tente la récupération des variables à partir du fichier, la connexion ne marche pas, alors que les variables contiennent exactement la même chose que dans le 1er cas, j'ai fait des tests avec des if pour vérifier.
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
 
#!/usr/bin/perl -w
use strict;
use Net::SSH::Perl;
 
my ($host, $username, $password);
 
open(INI, "config.ini") or die ("error opening config.ini");
        while (<INI>)
        {
                ($a, $b) = split / = /, $_, 2;
                if ($a eq "login") {$username = $b;}
                elsif ($a eq "pass") {$password = $b;}
                elsif ($a eq "test_name") {$host = $b;}
        }
close(INI);
 
chomp ($username, $password, $host);
 
my $ssh = Net::SSH::Perl->new($host);
$ssh->login($username, $password);
 
$ssh->cmd('**commande à effectuer**');
sachant que mon fichier config.ini contient ces lignes :
login = ********
pass = ********
test_name = ********
Quand j'exécute ce programme, j'ai ça qui apparaît :
input must be 8 bytes long at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Crypt/DES.pm line 57.
Est-ce que quelqu'un a déjà eu ce problème ?