gpt4 book ai didi

perl - Net::OpenSSH 中的交互模式

转载 作者:行者123 更新时间:2023-12-02 14:01:02 29 4
gpt4 key购买 nike

我是 perl 的初学者,正在尝试编写一个使用 Net::OpenSSH 在给定主机上运行命令的脚本。我如何在 Net::OpenSSH 中进行交互模式验证,类似于我们在 Net:SSH::Perl 中的操作。 Net:SSH::Perl 有一个交互式标志,如果设置为 true 则接收密码,否则使用公钥 auth。以下是我在 Net::SSH::Perl 中的 ssh 对象,我想在 Net::OpenSSH 中复制它:

 $ssh = Net::SSH::Perl->new($host,
debug => $debug,
port => $port,
interactive => $imode,
identity_files => [ @keys ],
);

此外,Net::SSH::Perl 可以接收一组 key ,而 Net::OpenSSH 只能接收一个。我该如何解决这个问题?

最佳答案

Net::OpenSSH默认情况下已经在交互模式下运行,让底层 ssh 进程在所有其他身份验证方法失败时要求输入密码(您必须请求 batch_mode 才能禁用它)。

您可以通过 master_opts 传递多个 key 构造函数参数:

my $ssh = Net::OpenSSH->new($host, ...
master_opts => [map { -i => $_ } @keys]);

您还可以在 GitHub bug-tracker 中创建功能请求我最终会添加对接受多个 key 而不使用 master_opts hack 的支持。

关于perl - Net::OpenSSH 中的交互模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51085582/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com