我的软件在SUSE Enterprise Linux 11 SP2上运行良好,但我不得不升级到SP3。升级后我的基于Net :: SSH2的Perl模块只是挂起而没有出现任何错误,甚至没有超时。因此,我使用Net :: SSH2创建了一个简单的测试脚本,该脚本在SP2机器中成功运行,但在SP3中没有。这是测试脚本
#!/usr/bin/perl
use strict;
use warnings;
use Net::SSH2;
my ($host, $user, $password) = ("myhost", "myuser", "mypassword");
print "Before Net::SSH2-new()\n";
my $ssh = Net::SSH2->new();
print "Before ssh->Connect\n";
$ssh->connect($host);
print "Before ssh->auth_keyboard\n";
$ssh->auth_keyboard($user, $password);
print "Before ssh->Channel\n";
my $channel = $ssh->channel();
print "Before Channel->blocking(0)\n";
$channel->blocking(0);
print "Before Channel->exec\n";
my $rt = $channel->exec("hostname");
print "The return value is: $rt \n";
#Closing connection
$channel->close;
$ssh->disconnect;
在SP3服务器中,我得到如下输出
myuser@myhost:~> perl test_ssh
Before Net::SSH2-new()
然后什么都没有。但在SP2服务器中,它没有任何问题。有人能说出造成这个问题的原因吗?