我有一个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实例可能需要几分钟才能使用的事实?
答案 0 :(得分:0)
根据CPAN文档,我可以看到ConnectionAttempts
和ConnectTimeout
应该转到default_ssh_opts
而不是master_opts
。请尝试一下。