Ищете Net::SSH2 аутентификацию с интерактивным экраном. Perl

Я пытаюсь получить доступ к оболочке удаленного узла Unix. Мне нужно пройти через процесс входа в систему.

Шаг 1: Экран входа в систему требует, чтобы я напечатал 'start', после чего появляется экран ниже Мне нужно выбрать последний вариант, чтобы перейти к приглашению пароля

Шаг 2: Чтобы получить приглашение на ввод пароля, мне нужно дважды нажать кнопку со стрелкой вниз, а затем нажать клавишу ввода. т.е. выберите опцию "Доступ к консольному терминалу".

Я реализую это с помощью Perl Net::SSH2 Module.

Мне нужно использовать метод "auth" или метод "auth_password_interact". Я сталкиваюсь с трудностями при реализации раздела обратного вызова. Где описанный выше процесс входа в систему может быть обработан, и он отправляет пароль в запросе пароля

Я попробовал ниже код, может кто-нибудь помочь мне в том, как интерактивный раздел может быть реализован здесь.

#!/usr/bin/perl
use strict;
use warnings;
use Net::SSH2;
use Term::ReadKey;

my $ssh2 = Net::SSH2->new();
$ssh2->connect('10.24.7.174'); # Connection is successful here

print $ssh2->auth_list(); # prints Publickey keyboard-interactive
$| =1; # Flush output to see characters pressed
# I assume this mode is used for 'menu-selection' type actions
ReadMode 'cbreak';

"Нужна помощь здесь"

sub loginNode{
    ## Need to read 2 arrow keys and then Enter ( carriage Return )
    my $char = ReadKey 0; # Read until carriage return is pressed
}

#$ssh2->auth_password_interact('start',&loginNode);
$ssh2->auth(  'username' => 'start',
          'password' => '*****',
          'interact' => 1,
          'keyboard-auto' => 1,
          'callback' => &loginNode());

#my $chan = $ssh2->channel(); # This fails, as authentication fails
#$chan->exec('ls -al');
END {
   ReadMode('restore');# option 0
}

Я нигде не мог найти примеры такой реализации.

0 ответов

Другие вопросы по тегам