如何通过 CPAN 模块 Net-OpenSSH 设置 GSSAPIAuthentication 和 GSSAPIDelegateCredentials 属性

Posted

技术标签:

【中文标题】如何通过 CPAN 模块 Net-OpenSSH 设置 GSSAPIAuthentication 和 GSSAPIDelegateCredentials 属性【英文标题】:How to set GSSAPIAuthentication and GSSAPIDelegateCredentials attributes through CPAN module Net-OpenSSH 【发布时间】:2015-12-12 13:43:04 【问题描述】:

我正在尝试通过模块 http://search.cpan.org/~salva/Net-OpenSSH-0.62/ 创建一个 ssh 句柄。我尝试将GSSAPIAuthenticationGSSAPIDelegateCredentials 设置为“否”,但如果我的.ssh/config 是这样的,这些设置不会生效:

$ cat myusername/.ssh/config 

Host *
    CheckHostIP no
    StrictHostKeyChecking no
    HashKnownHosts no
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no
    UserKnownHostsFile /dev/null
    LogLevel ERROR

这就是我尝试设置GSSAPIAuthenticationGSSAPIDelegateCredentials 的方式。还有一种方法可以在打开的 ssh 构造函数中提供-F 选项,以便默认情况下 ssh 使用其他一些配置文件,而不是使用我的用户名的一个用户?

$self->ssh = Net::OpenSSH->new($host,
user => $username,
passwd => $password,
timeout => $timeout,
default_stderr_discard => 1,
kill_ssh_on_timeout => 1,
master_opts => [-o => "UserKnownHostsFile=/dev/null",
    -o => "GSSAPIAuthentication=no", 
    -o => "GSSAPIDelegateCredentials=no",
    -o => "StrictHostKeyChecking=no"]);

【问题讨论】:

【参考方案1】:

只需在 master_opts 下添加 -F => 'somepath/config':

master_opts => [-F => 'somepath/config']

还有这样一行:

$self->ssh->_ssh_opts = ['-F', 'somepath/config'];'

【讨论】:

以上是关于如何通过 CPAN 模块 Net-OpenSSH 设置 GSSAPIAuthentication 和 GSSAPIDelegateCredentials 属性的主要内容,如果未能解决你的问题,请参考以下文章

如何开始为 CPAN 编写模块?

如何将 Perl 模块发布到 CPAN?

如何将 CPAN 模块安装到本地目录中?

如何在使用 perlbrew 时安装 CPAN 模块?

如何退出当前 CPAN 模块并打开一个新会话?

如何将我的所有 CPAN 模块更新到最新版本?