使用 Net::OpenSSH 和 Solaris SSH 客户端的“错误配置选项:ServerAliveInterval”

Posted

技术标签:

【中文标题】使用 Net::OpenSSH 和 Solaris SSH 客户端的“错误配置选项:ServerAliveInterval”【英文标题】:"Bad configuration option: ServerAliveInterval" using Net::OpenSSH and Solaris SSH client 【发布时间】:2014-10-08 05:03:37 【问题描述】:

我正在尝试使用Net::OpenSSH 连接到远程主机:

my $ssh = Net::OpenSSH->new(
    $ip_address,
    user => $user,
    password => $password,
    timeout => 3600,
    master_opts => [ -o => "StrictHostKeyChecking=no" ],
    ctl_dir => $ENVHOME
);

但我收到以下错误:

command-line: line 0: Bad configuration option: ServerAliveInterval
Unable to connect to remote host: unable to establish master SSH connection: bad password or master process exited unexpectedly at t1.pl line 33.

我正在使用以下版本的 SSH 客户端:

$ ssh -V
SSH Version Sun_SSH_1.0.1, protocol versions 1.5/2.0.

我该如何解决这个问题?

【问题讨论】:

真正的错误是第一个,关于ServerAliveInterval。你有什么版本的 OpenSSH(运行ssh -v 找出答案)? 感谢回复...我使用的是 SSH 版本 Sun_SSH_1.0.1,协议版本 1.5/2.0。 如果您有任何解决方案。请回复... 交叉发帖perlmonks.com/?node_id=1097550 【参考方案1】:

Net::OpenSSH 不支持 Solaris SSH 客户端。来自docs:

与 Solaris 捆绑在一起的 SSH 客户端是 OpenSSH 的早期分支,它不提供 Net::OpenSSH 所需的多路复用功能。您必须安装 OpenSSH 客户端。

Install the OpenSSH client 并确保它出现在系统ssh 之前。

或者,将ssh_cmd 选项用于new

my $ssh = Net::OpenSSH->new($host, ssh_cmd => '/usr/local/bin/ssh');

【讨论】:

sunfreeware.com 要求下载整个 sparc 包。 perl 中是否有其他方法可以在远程 Windows 机器上执行命令并在本地机器上获取输出?请帮忙.... @user3914863 还有其他获取 OpenSSH 的方法,这恰好是 Net::OpenSSH 文档中推荐的位置。见Installing OpenSSH Packages for SPARC and x86/Solaris 8-11。

以上是关于使用 Net::OpenSSH 和 Solaris SSH 客户端的“错误配置选项:ServerAliveInterval”的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 perl 和 Net::OpenSSH 检测远程端是不是只处理协议 1?

Net::OpenSSH 中的交互模式

在 Perl 的 ssh 连接中捕获错误主机名的错误消息(使用 Net::OpenSSH)

Perl:使用 Net::OpenSSH 的 scp_put 拒绝权限

Net::OpenSSH::Gateway->find_gateway 在设置 ControlPersist 选项时失败

如何获取 Net::OpenSSH->scp_get() 方法复制的文件列表