正在使用交互式屏幕查找Net::SSH2身份验证。Perl

正在使用交互式屏幕查找Net::SSH2身份验证。Perl,perl,terminal,interactive-mode,perlnetssh,Perl,Terminal,Interactive Mode,Perlnetssh,我正在尝试访问远程unix节点的shell。我需要通过它的登录过程 步骤1:登录屏幕要求我键入“开始”,然后出现下面的屏幕 步骤2:要获得密码提示,我需要按两次“向下箭头键”,然后按enter。i、 e.选择“控制台终端访问”选项 我使用PerlNet::SSH2模块实现了这一点 我需要使用“auth”方法或“auth\u password\u interactive”方法。我在执行回调部分时遇到困难。可以处理上述登录过程,并在密码提示下发送密码 我已经尝试了下面的代码,有谁能帮助我如何在这里实

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

步骤1:登录屏幕要求我键入“开始”,然后出现下面的屏幕

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

我使用PerlNet::SSH2模块实现了这一点

我需要使用“auth”方法或“auth\u password\u interactive”方法。我在执行回调部分时遇到困难。可以处理上述登录过程,并在密码提示下发送密码

我已经尝试了下面的代码,有谁能帮助我如何在这里实现交互部分

#!/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
}

我在任何地方都找不到这种实现的例子。

你想让程序的用户通过动作来访问远程机器(就像你的用户按本地键盘上的键一样),还是想让它自动化?@simbabque我想让它自动化。请忽略这个问题,我后来意识到,在后台运行的许多技术工具允许我手动访问系统的控制台,而不仅仅是简单的SSH检查。