Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > modul Net::SSH::Perl


Автор: Lisssa 27.9.2011, 08:50
Всем, привет. Я очень новенькая в перл, поэтому ошибки могут быть очень простыми.
 Такая ситуация.
Установила модуль и все зависимости , которые он стянул
 Net::SSH::Perl
Далее пытаюсь запустить скрипт 

#!/usr/bin/perl -w
# File: sshtest.pl
use Net::SSH::Perl;
$host = '192.168.0.1';
$user = 'usertest';
$pass = '********';
$conn = Net::SSH::Perl->new($host);
$conn->login($user, $pass);


#./sshtest.pl

команду 
#chmod +x sshtest.pl 
делала.

А в ответ 
Permission denied at ./sshtest.pl line 8

На англоизычном форуме было написано , что-то про sudo. 
sudo стоит, пользователя и так загнала под sudo. Все равно - эта ошибка.

Что может быть ? 
Подскажите пожалуйста гуру .

Автор: dmitryk1 27.9.2011, 09:32
$conn->login($user, $pass);

Или логин или пароль не правильные. Попробуйте сделать логин и пароль проще, хотя бы на время тестирования.

А вообще у меня с этим тоже проблемы какие-то были, так и не победил. В итоге сделал ключик и авторизовался с помощью ключа без пароля. 
Если найду исходники, которые заработали - выложу.

Ну и разумеется пробуйте под юзером этим просто по ssh зайти.

Автор: Lisssa 27.9.2011, 23:12
Спасибки за участие.
Ну я конечно пробовала с локальной машины , где запускаю скрипт зайти по ssh.
#ssh [email protected]
password:********

Все нормально пускает.0
 Пробывала и не на локальную машину , на другие адреса . По Ssh пускает, а вот скрипт в не какую ...
Permission denied at ./sshtest.pl line 8

Не с ключами - это очень сложно и не удобно в некоторых моментах. (( Да и не этот вариант нужен .

Где и как вообще посмотреть , что делает скрипт - ну все подробности? 
Хотябы понять на чем он спотыкается. 

Автор: arto 28.9.2011, 07:22
если бы вы прочитали документацию, то узнали бы для себя существование опции debug.

Автор: dmitryk1 28.9.2011, 08:04
Ну тут на самом деле можно попробовать залезть глубоко в исходники Net::SSH::Perl и там посмотреть. Насколько я помню там запускается SSH клиент и с ним идёт общение. Ну и да, почитать доки по Net::SSH::Perl, там должны как-то выдаваться более подробные сообщения.

Автор: Lisssa 29.9.2011, 05:26
Цитата(arto @ 28.9.2011,  07:22)
если бы вы прочитали документацию, то узнали бы для себя существование опции debug.

arto , я только приступила к изучению перл - это мой первый и навероно последний язык, уж сложно очень. ))
Для меня пока знакома опция -w . 
Попробывала опцию -d, но дебаггер оказался мне не по силам. Плюс он в самом конце - описан в последних уроках.
 В данный момент изучаю Перл по руководсту "Освой самостоятельно перл за 24 часа"  smile .
Ребята конечно жестко меня обманули , когда я повелась на эту уловку , это нихрена не ШТМЛ  smile  smile 
 smile 
 Нет , по правде я очень благодарна автору , если внимательно изучать руководство , то там все очень понятно. 
Только вот час этот растягивается на часов 5-6, так чтобы осмыслить , написать мини программки , выучить терминологию и синтаксис урока. 
 Добралась пока только до массивов  smile . 
 Для меня только знакомы скаляры , переменные , блоки , унарные операторы , условные операторы , циклы, метки.
  Уж не представляю , как добраться до дебаггера. Перепрыгивать не буду ! Все надо делать по порядку.
Максимум на что пока спасобна, это взять чужой код , если он хороший и запустить его.
 Не думала , что может такой модуль попасца.

Автор: Pfailed 29.9.2011, 05:30
Lisssa, имелась в виду опция debug модуля:
Код

$conn = Net::SSH::Perl->new($host, debug => 1);

Автор: Lisssa 29.9.2011, 05:36
Цитата(dmitryk1 @ 28.9.2011,  08:04)
Ну тут на самом деле можно попробовать залезть глубоко в исходники Net::SSH::Perl и там посмотреть. Насколько я помню там запускается SSH клиент и с ним идёт общение. Ну и да, почитать доки по Net::SSH::Perl, там должны как-то выдаваться более подробные сообщения.

 dmitryk1 попытка вникнуть глубако с дебаггером закончилась неудачей и растройством.
 Удалила модуль с помощью найденного скрипта по удалению модулей , попыталась переустановить.
Черещ CPAN , стандартным install не устанавливается , встает на тесте модуля.
Пошла , развернула пакет и проинсталировала в ручную , мэком и мэйк инсталом, только так он встает.
 Попробывала снова make test таже ошибка, вроде 255 уже точно не помню , прошлым утром делала . Гуглила по ней , ничего нет, только вопросы ...

Почитать доки - Это ты имеешь ввиду на CPAN ? 
 Где порекомендуешь - это лучше делать ?
perldoc очень тяжело пользоваться , для нормального понимания, может по проще есть дорога ?

Автор: dmitryk1 29.9.2011, 08:37
К сожалению я тоже начинающий. Так что особо глубоко подсказать не могу. Про доки да - на CPAN. Ещё можно просто посмотреть код самого модуля, но наверное начинающему это сложно будет. 

Ещё неплохой вариант, сделать скриптик на шелле, в который передавать пароль с логином, а в скриптике вызывать подключение к ssh. Этакую прослойку. И в этом самом скриптике выводить в лог все данные, переменные окружения, текущего пользователя и т.п. Возможно это поможет понять проблему.

Я запускал скрипт из браузера, поэтому было много таких сложностей связанных с правами пользователя от которого скрипт запускается на веб-сервере и от которого я его пишу и отлаживаю. В судо конф что-то пришлось дописывать чтобы права на ssh появились. Ну и в итоге, как говорил, сделал ключики для каждого сервера и без пароля коннектился.

Автор: arto 29.9.2011, 15:15
поставте опцией в new 'interactive' => 1 и разбирайтесь.

Автор: Lisssa 1.10.2011, 08:41
 Спасибки , Вам огромное  smile 
Все, что посоветовали, очень выручило. 
 Доустановила модуль, как посоветовал интерактив и по дебаг домыслила, что проблема в DNS.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)