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.
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 #!/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**');
sachant que mon fichier config.ini contient ces lignes :
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**');
Quand j'exécute ce programme, j'ai ça qui apparaît :login = ********
pass = ********
test_name = ********
Est-ce que quelqu'un a déjà eu ce problème ?input must be 8 bytes long at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Crypt/DES.pm line 57.
Partager