我正在尝试访问远程 unix 节点的 shell。我需要完成它的登录过程。
第 2 步:要获得密码提示,我需要按两次“向下箭头键”,然后按 Enter。即选择“控制台终端访问”选项。
我正在使用 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
}
我在任何地方都找不到这种实现的任何例子。