寻找具有交互式屏幕的Net :: SSH2身份验证。 Perl的

时间:2016-11-18 05:56:38

标签: perl terminal interactive-mode perlnetssh

我正在尝试访问远程unix节点的shell。我需要完成登录过程。

第1步:登录界面要求我输入“开始”,然后出现以下屏幕I need to select the last option to go to password prompt

步骤2:要获得密码提示,我需要按两次“向下箭头键”然后按回车键。即选择“控制台终端访问”选项。

我正在使用Perl Net :: SSH2模块实现这一点。

我需要使用'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 个答案:

没有答案