Итак, сразу к делу.
Самый простой скрипт для соединения с Cisco выглядит примерно так:
#!/usr/bin/perl $user = 'robot'; |
Однако если использовать версию протокола SSH v1 (protocol => '1') тогда всё запускается и работает, однако с версией SSH-2 (protocol => '2') выкидывает в ошибку:
... serverbox.ru: Next method to try is password. serverbox.ru: Trying password authentication. serverbox.ru: Login completed, opening dummy shell channel. serverbox.ru: channel 0: new [client-session] serverbox.ru: Requesting channel_open for channel 0. serverbox.ru: channel 0: open confirm rwindow 1024 rmax 4096 serverbox.ru: Got channel open confirmation, requesting shell. serverbox.ru: Requesting service shell on channel 0. serverbox.ru: channel 1: new [client-session] serverbox.ru: Requesting channel_open for channel 1. serverbox.ru: Entering interactive session. serverbox.ru: Channel open failure: 1: reason 4: |
Т.е. тут происходит открытие нескольких логических сессий (каналов) в одной сессии - это особенность ssh-2 в отличии от ssh-1.
Клиент пытается создать новый канал и передает сообщение, содержащее выделенный номер канала и размер окна.
Удаленная сторона принимает решение о создании канала и возвращает сообщение о согласии (SSH_MSG_CHANNEL_OPEN_CONFIRMATION) или отказе (SSH_MSG_CHANNEL_OPEN_FAILURE), как написано в "RFC 4254 The Secure Shell (SSH) Connection Protocol".
В нашем случае циска отвергла создание логической сессии (второго потока).
Надо бы разрешить на циске коннекты в несколько потоков, т.е. в одной сессии разрешить несколько логических сессий.
Однако в Cisco с целью безопасности, а именно чтобы нельзя было пробрасывать ssh туннели запретили эту функцию.
На форумах очень много разной информации: и как в один поток всё положить, и как включить многопотоковость в Cisco и т.п., но ничего это не работает.
Однако решение как оказалось очень простое, а это использовать модуль Net::SSH2::Cisco
#!/usr/bin/perl $user = 'robot'; |
После запуска получаем ответ:
Cisco IOS Software, C2960S Software (C2960S-UNIVERSALK9-M), Version 12.2(55)SE7, RELEASE SOFTWARE (fc1) echnical Support: http://www.cisco.com/techsupport opyright (c) 1986-2013 by Cisco Systems, Inc. ompiled Mon 28-Jan-13 10:28 by prod_rel_team mage text-base: 0x00003000, data-base: 0x01B00000 ..... |
Обновлено 07.04.2016 18:48