Net::SSH::Perl долго устанавливает соединение - до 55 секунд. Где может быть задержка и как ее избежать?
Убей ssh ключи в .ssh
>Убей ssh ключи в .ssh
Убил. Результат:
Соединение получено, 41 сек. задержки.
Т.е. то же...
>>Убей ssh ключи в .ssh
>Убил. Результат:
> Соединение получено, 41 сек. задержки.
>Т.е. то же...
млжет не в тему -- но неплохо было бы проверить dns -- обычным клиентом быстро коннектиться???
>>>Убей ssh ключи в .ssh
>>Убил. Результат:
>> Соединение получено, 41 сек. задержки.
>>Т.е. то же...
>млжет не в тему -- но неплохо было бы проверить dns --
>обычным клиентом быстро коннектиться???
Я сразу IP даю.
ssh сервер при подключении пытаеться определить dns имя клиента -- в связи с этим бывают задержки, даже большие..
поэтому интересуюсь "обычным клиентом быстро коннектиться??? "
>>>>Убей ssh ключи в .ssh
>>>Убил. Результат:
>>> Соединение получено, 41 сек. задержки.
>>>Т.е. то же...
>>млжет не в тему -- но неплохо было бы проверить dns --
>>обычным клиентом быстро коннектиться???
Я сразу IP даю. И вот вывод с отладкой:
144814 - Запрос соединения
XXX.XXX.XXX.XXX.static.inets.ru: Reading configuration data /root/.ssh/config
XXX.XXX.XXX.XXX.static.inets.ru: Reading configuration data /etc/ssh_config
XXX.XXX.XXX.XXX.static.inets.ru: Allocated local port 1023.
XXX.XXX.XXX.XXX.static.inets.ru: Connecting to XXX.XXX.XXX.XXX, port 22.
XXX.XXX.XXX.XXX.static.inets.ru: Remote version string: SSH-2.0-OpenSSH_4.3XXX.XXX.XXX.XXX.static.inets.ru: Remote protocol version 2.0, remote software version OpenSSH_4.3
XXX.XXX.XXX.XXX.static.inets.ru: Net::SSH::Perl Version 1.30, protocol version 2.0.
XXX.XXX.XXX.XXX.static.inets.ru: No compat match: OpenSSH_4.3.
XXX.XXX.XXX.XXX.static.inets.ru: Connection established.
XXX.XXX.XXX.XXX.static.inets.ru: Sent key-exchange init (KEXINIT), wait response.
XXX.XXX.XXX.XXX.static.inets.ru: Algorithms, c->s: 3des-cbc hmac-sha1 none
XXX.XXX.XXX.XXX.static.inets.ru: Algorithms, s->c: 3des-cbc hmac-sha1 none
#Вот здесь долго висит
XXX.XXX.XXX.XXX.static.inets.ru: Entering Diffie-Hellman Group 1 key exchange.
XXX.XXX.XXX.XXX.static.inets.ru: Sent DH public key, waiting for reply.
XXX.XXX.XXX.XXX.static.inets.ru: Received host key, type 'ssh-dss'.
XXX.XXX.XXX.XXX.static.inets.ru: Host 'XXX.XXX.XXX.XXX' is known and matches the host key.
XXX.XXX.XXX.XXX.static.inets.ru: Computing shared secret key.
#И здесь долго
XXX.XXX.XXX.XXX.static.inets.ru: Verifying server signature.
XXX.XXX.XXX.XXX.static.inets.ru: Waiting for NEWKEYS message.
XXX.XXX.XXX.XXX.static.inets.ru: Enabling incoming encryption/MAC/compression.
XXX.XXX.XXX.XXX.static.inets.ru: Send NEWKEYS, enable outgoing encryption/MAC/compression.
XXX.XXX.XXX.XXX.static.inets.ru: Sending request for user-authentication service.
XXX.XXX.XXX.XXX.static.inets.ru: Service accepted: ssh-userauth.
XXX.XXX.XXX.XXX.static.inets.ru: Trying empty user-authentication request.
XXX.XXX.XXX.XXX.static.inets.ru: Authentication methods that can continue: publickey,gssapi-with-mic,password.
XXX.XXX.XXX.XXX.static.inets.ru: Next method to try is publickey.
XXX.XXX.XXX.XXX.static.inets.ru: Next method to try is password.
XXX.XXX.XXX.XXX.static.inets.ru: Trying password authentication.
XXX.XXX.XXX.XXX.static.inets.ru: Login completed, opening dummy shell channel.
XXX.XXX.XXX.XXX.static.inets.ru: channel 0: new [client-session]
XXX.XXX.XXX.XXX.static.inets.ru: Requesting channel_open for channel 0.
XXX.XXX.XXX.XXX.static.inets.ru: channel 0: open confirm rwindow 0 rmax 32768
XXX.XXX.XXX.XXX.static.inets.ru: Got channel open confirmation, requesting shell.
XXX.XXX.XXX.XXX.static.inets.ru: Requesting service shell on channel 0.
144854 - Соединение получено, 40 сек. задержки.
XXX.XXX.XXX.XXX.static.inets.ru: channel 1: new [client-session]
XXX.XXX.XXX.XXX.static.inets.ru: Requesting channel_open for channel 1.
XXX.XXX.XXX.XXX.static.inets.ru: Entering interactive session.
XXX.XXX.XXX.XXX.static.inets.ru: Sending command: /root/perl/packets2.pl
XXX.XXX.XXX.XXX.static.inets.ru: Requesting service exec on channel 1.
XXX.XXX.XXX.XXX.static.inets.ru: channel 1: open confirm rwindow 0 rmax 32768
XXX.XXX.XXX.XXX.static.inets.ru: channel 1: rcvd eof
XXX.XXX.XXX.XXX.static.inets.ru: channel 1: output open -> drain
XXX.XXX.XXX.XXX.static.inets.ru: input_channel_request: rtype exit-status reply 0
XXX.XXX.XXX.XXX.static.inets.ru: channel 1: rcvd close
XXX.XXX.XXX.XXX.static.inets.ru: channel 1: input open -> closed
XXX.XXX.XXX.XXX.static.inets.ru: channel 1: close_read
XXX.XXX.XXX.XXX.static.inets.ru: channel 1: obuf empty
XXX.XXX.XXX.XXX.static.inets.ru: channel 1: output drain -> closed
XXX.XXX.XXX.XXX.static.inets.ru: channel 1: close_write
XXX.XXX.XXX.XXX.static.inets.ru: channel 1: send close
XXX.XXX.XXX.XXX.static.inets.ru: channel 1: full closed
Net::SSH::Perl -- это клиентский модуль, соответственно программа являеться клиентом.
а вот СЕРВЕР -- куда мы коннектимся , пытаеться при подключении к нему разрезолвить наш ip адрес, так вот -- по какому адерсу (dns или сразу ip) коннектимся мы значения в данном случае ен имеет, важны лиш настройки удалённой машины т.е. сервера, я поэтому в третий раз спрашиваю обычным клиентом (ssh openssh putty) когда соединяемся есть задержки или нет ???
>Net::SSH::Perl -- это клиентский модуль, соответственно программа являеться клиентом.
>а вот СЕРВЕР -- куда мы коннектимся , пытаеться при подключении к
>нему разрезолвить наш ip адрес, так вот -- по какому адерсу
>(dns или сразу ip) коннектимся мы значения в данном случае ен
>имеет, важны лиш настройки удалённой машины т.е. сервера, я поэтому в
>третий раз спрашиваю обычным клиентом (ssh openssh putty) когда соединяемся есть
>задержки или нет ???
НЕТ!
Поставь Math::BigInt::GMP
>Поставь Math::BigInt::GMPБольшое спасибо Sigiz за решение проблемы. Ещё хочу добавить, что нужно перед этим поставить libgmp (если БСД - /usr/ports/math/libgmp4)
Помогите пожалуйста.
Не могу понять почему так происходит.
Использую простой скрипт:
#!/usr/bin/perluse strict;
use warnings;
use Net::SSH::Perl;my $host = '192.168.2.203';
my $pass = 'allstarsgo';
my $user = 'dima';
my $cmd = 'ls';my $ssh = Net::SSH::Perl->new($host, protocol => '2,1', debug => 1);
$ssh->login($user, $pass);
my($stdout, $stderr, $exit) = $ssh->cmd($cmd);
print $stdout, "\n";И вот при запуске скрипта он говорит
my.host.net: Reading configuration data /root/.ssh/config
my.host.net: Reading configuration data /etc/ssh_config
my.host.net: Allocated local port 1023.
my.host.net: Connecting to 192.168.2.203, port 22.
my.host.net: Remote protocol version 2.0, remote software version OpenSSH_5.2p1 FreeBSD-20090522
my.host.net: Net::SSH::Perl Version 1.34, protocol version 2.0.
my.host.net: No compat match: OpenSSH_5.2p1 FreeBSD-20090522
my.host.net: Connection established.
my.host.net: Sent key-exchange init (KEXINIT), wait response.
my.host.net: Algorithms, c->s: 3des-cbc hmac-sha1 none
my.host.net: Algorithms, s->c: 3des-cbc hmac-sha1 none
my.host.net: Entering Diffie-Hellman Group 1 key exchange.
my.host.net: Sent DH public key, waiting for reply.
my.host.net: Received host key, type 'ssh-dss'.
my.host.net: Host '192.168.2.203' is known and matches the host key.
my.host.net: Computing shared secret key.
my.host.net: Verifying server signature.
my.host.net: Waiting for NEWKEYS message.
my.host.net: Send NEWKEYS.
my.host.net: Enabling encryption/MAC/compression.
my.host.net: Sending request for user-authentication service.
my.host.net: Service accepted: ssh-userauth.
my.host.net: Trying empty user-authentication request.
my.host.net: Authentication methods that can continue: publickey,keyboard-interactive.
my.host.net: Next method to try is publickey.
Permission denied at ssh.pl line 13Т.е. во время команды login....
Что бы это могло быть..
Пользователь такой есть. И через обычный клиент коннектиться нормально.
Заранее благодарен
>[оверквотинг удален]
> my.host.net: Sending request for user-authentication service.
> my.host.net: Service accepted: ssh-userauth.
> my.host.net: Trying empty user-authentication request.
> my.host.net: Authentication methods that can continue: publickey,keyboard-interactive.
> my.host.net: Next method to try is publickey.
> Permission denied at ssh.pl line 13
> Т.е. во время команды login....
> Что бы это могло быть..
> Пользователь такой есть. И через обычный клиент коннектиться нормально.
> Заранее благодаренТы нашел решение этой проблемы? Я тоже с ней сталкнулся
>[оверквотинг удален]
>> my.host.net: Service accepted: ssh-userauth.
>> my.host.net: Trying empty user-authentication request.
>> my.host.net: Authentication methods that can continue: publickey,keyboard-interactive.
>> my.host.net: Next method to try is publickey.
>> Permission denied at ssh.pl line 13
>> Т.е. во время команды login....
>> Что бы это могло быть..
>> Пользователь такой есть. И через обычный клиент коннектиться нормально.
>> Заранее благодарен
> Ты нашел решение этой проблемы? Я тоже с ней сталкнулсяЭх.. нет проблема так и не решилась.
>[оверквотинг удален]
>>> my.host.net: Trying empty user-authentication request.
>>> my.host.net: Authentication methods that can continue: publickey,keyboard-interactive.
>>> my.host.net: Next method to try is publickey.
>>> Permission denied at ssh.pl line 13
>>> Т.е. во время команды login....
>>> Что бы это могло быть..
>>> Пользователь такой есть. И через обычный клиент коннектиться нормально.
>>> Заранее благодарен
>> Ты нашел решение этой проблемы? Я тоже с ней сталкнулся
> Эх.. нет проблема так и не решилась.Понятно. Я сейчас пользуюсь Net::SSH:Expect работает только с костылями. Команды выполняются на удаленной машине паралельно, а мне нужно после создания бэкапа через tar поменять права на файл и потом через scp скопировать. Короче пришлось повозиться чтобы дождаться завершения tar. Спасибо за отзыв
Модуль Net::SSH::Perl может соединяться с ssh-сервером в двух режимах: пкетном и интерактивном.По умолчанию интерактивный режим отключен. Т.е. ввести логин/пароль нельзя! А значит значения логина и пароля будут игнорироваться.
Включите интерактивный режим. И всё будет работать.
P.S.
к сожалению, документация вводит в заблуждение.