Доброго времени суток !Использую модуль Net::SSH::Perl для подключения к серверу и удаленного выполнения команд , но выскакиевает ошибка :
root@mail:/ # perl /usr/local/pevl
Can't call method "login" on an undefined value at /usr/local/pevl line 3.
root@mail:/ #Код :
use Net::SSH::Perl
my $ssh = Net::SSH::Perl ->new("192.168.10.1");
$ssh->login("admin","911") or warn ("not logged");
my($stdout, $stderr, $exit) = $ssh->cmd("df -h");
print "$stdout\n$stderr\n$exit\n"
Проверяй, что получилось:
my $ssh = Net::SSH::Perl ->new("192.168.10.1") || die $!;
Сейчас у тебя проблема. Включи debug:my $ssh = Net::SSH::Perl ->new("192.168.10.1",debug=>1) || die $!;
> Проверяй, что получилось:
> my $ssh = Net::SSH::Perl ->new("192.168.10.1") || die $!;
> Сейчас у тебя проблема. Включи debug:
> my $ssh = Net::SSH::Perl ->new("192.168.10.1",debug=>1) || die $!;По прежнему
root@mail:/ # perl /usr/local/pevl
Can't call method "login" on an undefined value at /usr/local/pevl line 3.
root@mail:/ #
> root@mail:/ # perl /usr/local/pevl
> Can't call method "login" on an undefined value at /usr/local/pevl line 3.Поставь `;' :
use Net::SSH::Perl;И перед ним вставь
use warnings;
use strict;не пиши ничего на Perl без этих команд.
В конце print тоже не помешает. Потом дописывать будешь, снова глюк словишь.
>[оверквотинг удален]
>
> use Net::SSH::Perl;
>
> И перед ним вставь
>
> use warnings;
> use strict;
>
> не пиши ничего на Perl без этих команд.
> В конце print тоже не помешает. Потом дописывать будешь, снова глюк словишь.Поправил
use warnings;
use strict;
use Net::SSH::Perl;
my $ssh = Net::SSH::Perl ->new("192.168.10.1") || die $!;
$ssh->login("admin","911") or warn ("not logged");
print "$stdout\n$stderr\n$exit\n";
print "END\n";Результат:
root@mail:/ # perl /usr/local/pevl
Permission denied at /usr/local/pevl line 5
root@mail:/ #
>[оверквотинг удален]
> use strict;
> use Net::SSH::Perl;
> my $ssh = Net::SSH::Perl ->new("192.168.10.1") || die $!;
> $ssh->login("admin","911") or warn ("not logged");
> print "$stdout\n$stderr\n$exit\n";
> print "END\n";
> Результат:
> root@mail:/ # perl /usr/local/pevl
> Permission denied at /usr/local/pevl line 5
> root@mail:/ #Дело было в настройках sshd_config
PasswordAuthentication yes