使用 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?
在 Perl 的 ssh 连接中捕获错误主机名的错误消息(使用 Net::OpenSSH)
Perl:使用 Net::OpenSSH 的 scp_put 拒绝权限
Net::OpenSSH::Gateway->find_gateway 在设置 ControlPersist 选项时失败