小编Mar*_*cus的帖子

Perl Net :: SSH2 pubkey身份验证问题

我正在尝试使用Net :: SSH2连接到远程SSH服务器.命令行ssh工作正常.但我似乎无法弄清楚正确的auth_hostbased参数

这是我的代码:

use Net::SSH2;

my $ssh = Net::SSH2->new();
$ssh->debug(1);
$ssh->trace(-1);
$ssh->connect('remotehost.remotedomain.tld') or die;
$ssh->auth_hostbased('username',
    'ssh-rsa  AAAAB3Nz[..]C0JoaFF9 root@myhost',
    '-----BEGIN RSA PRIVATE KEY-----
    Proc-Type: 4,ENCRYPTED
    DEK-Info: AES-128-CBC,FA97214E87562096A7E480C82DAE5EB4

    XIMKnj9k[..]kpRo5V
    -----END RSA PRIVATE KEY-----',
    'myhost.mydomain.tld',
    'username',
    'keypassword') or die;
Run Code Online (Sandbox Code Playgroud)

该片段仅使用'Net :: SSH2 :: DESTROY对象0xe17de0'来消息@ $ ssh-> auth_hostbased.设置跟踪似乎并不重要.用$ ssh-> die_with_error替换die会抛出'die_with_error不是有效的Net :: SSH2宏'.下载当前0.53版本的Net:SSH2不起作用,因为脚本不再编译:'Net :: SSH2对象版本0.44与bootstrap参数0.53不匹配'

任何有关正确参数格式或替代模块的帮助都表示赞赏.

ssh perl public-key

5
推荐指数
1
解决办法
853
查看次数

Perl:命名参数验证最佳实践

我在类方法调用中使用命名参数,并想知道是否有最佳实践来确保没有传递未知参数.这就是我在做什么

sub classmethod {
    my $self = shift;
    my %args = (
        "param1" => "default1",
        "param2" => "default2",
        @_
    )

    if (my @invalid = grep { !/^(param1|param2)$/ } keys %args) {
        croak "received unknown arg(s) ".join(",", @invalid)." from ".caller();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一种正确的前进方式,还是会导致性能问题?

最好的,马库斯

validation parameters perl named

3
推荐指数
1
解决办法
637
查看次数

标签 统计

perl ×2

named ×1

parameters ×1

public-key ×1

ssh ×1

validation ×1