【问题标题】:how to use Net::SSH::Perl with public keys?如何使用带有公钥的 Net::SSH::Perl?
【发布时间】:2010-08-26 18:18:59
【问题描述】:

我正在尝试使用Net::SSH::Perl 使用带有此代码的公钥进行连接:

my $ssh = Net::SSH::Perl->new($host, debug=>1) || die ......

我把密钥放在 /root/.ssh/id_rsa 和 /root/.ssh/identity

它似乎没有尝试使用公钥,而是尝试询问密码:

我得到这个输出:

localhost:发送密钥交换初始化(KEXINIT),等待响应。 本地主机:算法,c->s:3des-cbc hmac-sha1 无 本地主机:算法,s->c:3des-cbc hmac-sha1 无 localhost:进入 Diffie-Hellman Group 1 密钥交换。 localhost:发送DH公钥,等待回复。 localhost:收到主机密钥,输入“ssh-dss”。 localhost:主机 '10.212.1.201' 是已知的并且与主机密钥匹配。 localhost:计算共享密钥。 localhost:验证服务器签名。 localhost:等待 NEWKEYS 消息。 本地主机:发送 NEWKEYS。 localhost:启用加密/MAC/压缩。 localhost:发送用户认证服务请求。 localhost:接受的服务:ssh-userauth。 localhost:尝试空的用户身份验证请求。 localhost:可以继续的认证方式:publickey,gssapi-with-mic,password。 localhost:下一个尝试的方法是 publickey。 localhost:下一个尝试的方法是密码。 localhost:尝试密码验证。 localhost:不会在批处理模式下查询密码。 localhost:可以继续的认证方式:publickey,gssapi-with-mic,password。 localhost:下一个尝试的方法是 publickey。 localhost:下一个尝试的方法是密码。 localhost:尝试密码验证。 localhost:不会在批处理模式下查询密码。 localhost:可以继续的认证方式:publickey,gssapi-with-mic,password。 localhost:下一个尝试的方法是 publickey。 localhost:下一个尝试的方法是密码。 localhost:尝试密码验证。 localhost:不会在批处理模式下查询密码。 localhost:可以继续的认证方式:publickey,gssapi-with-mic,password。 localhost:下一个尝试的方法是 publickey。 localhost:下一个尝试的方法是密码。

【问题讨论】:

    标签: perl ssh ssh-keys


    【解决方案1】:

    找到它:必须手动指定密钥文件位置:

    @KEYFILE = ("/root/.ssh/id_rsa");
    $ssh = Net::SSH::Perl->new($host, debug=>1, identity_files=>\@KEYFILE)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      • 2021-03-21
      • 1970-01-01
      • 2010-12-09
      • 2022-01-27
      • 2023-03-07
      • 2023-03-24
      相关资源
      最近更新 更多