2009年6月15日星期一

[PerlChina] Re: Net::OpenSSH 通过口令认证时,貌似不能自动回答 ssh 命令一开始那个 “yes"

用 ssh 命令的选项可以抑制这个信息。
看来按照作者的思路确实应该这样解决。

2009/6/16 flw <su2admin@gmail.com>
我现在就碰到的是这个错误:
error: unable to establish master SSH connection: the authenticity of the target host can't be established, try loging manually first
这是 Net::OpenSSH 里对应的那段源代码:

if
($status eq 'waiting_for_password_prompt') {
if ($$bout =~ /The authenticity of host.*can't be established/si) {
$self->_set_error(OSSH_MASTER_FAILED, $wfm_error_prefix,
"the authenticity of the target host can't be established, try loging manually first");
注意这里 =======>
$self->_kill_master;
return undef;
}
if ($$bout =~ s/^(.*:)//s) {
$debug and $debug & 4 and _debug "passwd requested ($1)";
print $mpty "$passwd\n";
$status = 'password_sent';
}
}

按照它的提示,手工登录一下(实际上就是消除了那个 yes)之后,
再用 Net::OpenSSH 登录,就好了。

难道 Net::OpenSSH 的作者认为这个提示可以通过 ssh 命令的某个选项关掉因此故意不支持的?


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: