【发布时间】:2011-01-06 18:07:14
【问题描述】:
我正在尝试通过Net::Telnet Perl 模块自动远程登录到不需要任何身份验证的 Linux 机器。这是一个测试脚本:
use strict;
use Net::Telnet;
my $telnet = new Net::Telnet ( Timeout=>10, Errmode=>'die',
host=> '10.104.20.200', port => 2004,
);
$telnet->print('ls');
my $output = $telnet->waitfor('/\$ $/i');
print $output;
当我执行这个脚本时,我得到以下错误,
telnetPerl.pl 第 7 行的模式匹配超时。如您所见,我正在匹配waitfor 中的任何字符。但我怀疑telnet连接是否首先发生。
【问题讨论】:
-
将
Debug => 1添加到构造函数并发布输出。另外,不要使用间接对象表示法;相反,请使用my $telnet = Net::Telnet->new(...)。 -
尽管特殊考虑可能会使这种安全性变得安全,但通过 telnet 进行的匿名访问在安全方面存在根本缺陷。在您的 10.* 主机之一上运行的任何木马都可以通过网络扫描找到它并做各种邪恶的事情。我希望您至少已将您的 telnet 用户 chroot 到某个沙盒游乐场。