URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9622
[ Назад ]

Исходное сообщение
"Net::SSH::Perl"

Отправлено dario , 09-Янв-13 18:26 
Доброго времени суток !

Использую модуль 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"


Содержание

Сообщения в этом обсуждении
"Net::SSH::Perl"
Отправлено ACCA , 09-Янв-13 19:27 
Проверяй, что получилось:
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 $!;


"Net::SSH::Perl"
Отправлено dario , 10-Янв-13 02:05 
> Проверяй, что получилось:
> 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:/ #


"Net::SSH::Perl"
Отправлено ACCA , 10-Янв-13 05:01 
> 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 тоже не помешает. Потом дописывать будешь, снова глюк словишь.


"Net::SSH::Perl"
Отправлено dario , 10-Янв-13 12:24 
>[оверквотинг удален]
>
 
> 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:/ #



"Net::SSH::Perl"
Отправлено dario , 10-Янв-13 16:54 
>[оверквотинг удален]
> 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