我是 CGI 脚本的新手,我尝试使用 Net::OpenSSH 连接到另一台服务器,但出现以下错误
#!/tools/openbin/perl/5.16.3/sparc-sun-solaris8/bin/perl
use strict;
use warnings;
use Net::OpenSSH;
my $host ="**********";
my $user_name = "*******";
my $password_value = "*********";
my $ssh = Net::OpenSSH->new(host => $host, user => $user_name, password => $password_value);
$ssh->error and die "SSH connection failed: " . $ssh->error;
这会出现以下错误:
命令行:第 0 行:错误的配置选项:ServerAliveInterval
SSH 连接失败:无法建立主 SSH 连接:密码错误或主进程在 ./test.pl 第 11 行意外退出。
答案1
根据 Net::OpenSSH文档:
Solaris 捆绑的 SSH 客户端是 OpenSSH 的早期分支,不提供 Net::OpenSSH 所需的多路复用功能。您必须安装 OpenSSH 客户端。
预编译的软件包可从 Sun Freeware (http://www.sunfreeware.com)。在那里,选择您的操作系统版本和 CPU 架构,下载 OpenSSH 包及其依赖项并安装它们。请注意,您不需要配置 Solaris 来使用 OpenSSH 服务器 sshd。
确保 OpenSSH 客户端在系统 ssh 之前位于您的路径中,或者您可以将完整路径硬编码到您的脚本中,如下所示:
$ssh = Net::OpenSSH->new($host,
ssh_cmd => '/usr/local/bin/ssh');
AIX 以及可能的一些其他 unixen 也捆绑了缺少多路复用功能的 SSH 客户端,并需要安装真正的 OpenSSH。