首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Net::OpenSSH::Gateway->find_gateway在设置ControlPersist选项时失败

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

Stack Overflow用户
提问于 2014-06-27 06:45:53
回答 2查看 378关注 0票数 1

我正在尝试使用Net::OpenSSH::Gateway创建持久网关连接。下面是我使用的代码片段。

代码语言:javascript
复制
my %proxy_opts = (
 host => $host,
 port=>$port,
 password=>$password,
 user=>$user ,
 scheme=>"ssh",
 ssh_cmd => '/usr/bin/ssh',
 master_opts =>
               [ -o=>"StrictHostKeyChecking=no",
                 -o=>"TCPKeepAlive=no",
                 -o=>"ServerAliveInterval=30",
                 -o=>"ServerAliveCountMax=90",
                 -o=>"ControlPath=/tmp/ssh-master-%h_%p_%r",
                 -o=>"ControlPersist=yes"
                ]
);

my %gateway_settings = ( proxies=>[ {%proxy_opts} ]);
my $gateway = Net::OpenSSH::Gateway->find_gateway(%gateway_settings, errors=>$errors);

我知道下面的错误。但是,如果我删除了ControlPath和ControlPersist选项,整个程序就可以正常工作了。

无法建立主SSH连接的错误: pid 31933所拥有的/root/.libnet-openssh-perl/spangeni-j1.zscaler.-31930-744378,套接字上的ssh母版错误(pid 31931预期)

EN

回答 2

Stack Overflow用户

发布于 2014-06-27 08:14:45

我想是模块里的一个窃听器。在CPAN上不存在模块Net::OpenSSH::Gateway,作者已经说过:

我还没有在CPAN上发布它,因为即使它已经可以使用,我还是发现了它的内部架构的一些问题,我想首先解决这些问题。-来源

而且,如果您看到Net::OpenSSH的文档,您将看到网关是一个实验性的特性。

顺便问一下,您使用的是什么版本的OpenSSH?ControlPersist需要OpenSSH 5.6或更高版本。

票数 2
EN

Stack Overflow用户

发布于 2014-06-28 07:52:45

如果在网关机器上启用了隧道,则根本不需要使用Net::OpenSSH::Gateway。

代码语言:javascript
复制
my $ssh_g=Net::OpenSSH->new($gateway);
my $proxy_command=$ssh_g->make_remote_command({tunnel => 1}, $host, 22);
my $ssh=Net::OpenSSH->new($host,
                          master_opts => [-o => "ProxyCommand=$proxy_command"]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24445573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档