perl Openssh ConnectionTimeout无效

时间:2013-03-28 13:43:10

标签: perl amazon-ec2 openssh

我有一个perl脚本启动EC2实例,然后使用Net :: OpenSSH连接并运行一些命令。

my $ssh = Net::OpenSSH->new( $username . "\@" . $host, 
          key_path => $key_path,
          master_opts => [-o => "ConnectionAttempts=30", -o => "ConnectTimeout=30"] );

if ( $ssh->error ) {
  die "Timeout: " . $ssh->error . "\n";
}

这似乎不起作用 - 这应该尝试15分钟,然后退出,但它几乎立即返回。我从来没有收到Timeout:错误消息,所以ssh没有返回错误。

这是正确的语法吗?是否有更好的方法来处理EC2实例可能需要几分钟才能使用的事实?

1 个答案:

答案 0 :(得分:0)

根据CPAN文档,我可以看到ConnectionAttemptsConnectTimeout应该转到default_ssh_opts而不是master_opts。请尝试一下。