首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Perl的Net::SFTP->new抱怨“不是数组引用”?

为什么Perl的Net::SFTP->new抱怨“不是数组引用”?
EN

Stack Overflow用户
提问于 2010-10-19 14:35:16
回答 1查看 1.4K关注 0票数 0

我试图使用Net::SFTP连接到远程服务器。

我的剧本是:

代码语言:javascript
复制
my %args = ( 
    ssh_args => { 
       user => 'canneu_scp', 
       identity_files => [ '/home/home1/cgrshah/responsys/capgemini.private' ], 
       debug => 1, 
 } );

my $targetserver='files.responsys.net';

my $sftp = Net::SFTP->new($targetserver, %args) 
      or die "could not open connection to $targetserver\n";

但是当我运行这个程序时,我会收到一个错误声明:

代码语言:javascript
复制
 Not an ARRAY reference at /usr/lib/perl5/site_perl/5.8.1/Net/SFTP.pm line 36.

有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2010-10-19 15:10:20

这只是黑暗中的空想,但user选项不应该在传递给ssh_args的散列中,它处于相同的级别。尝试使用以下代码:

代码语言:javascript
复制
my $sftp = Net::SFTP->new(
    $targetserver,
    user     => 'canneu_scp', 
    ssh_args => { 
        identity_files => [ '/home/home1/cgrshah/responsys/capgemini.private' ], 
        debug => 1,
    } 
) or die "could not open connection to $targetserver\n";

听起来,上面的代码让您更进一步,现在您遇到了问题,因为您的Math::BigInt版本太老了。我看到了三种前进的方法:

later

  • manually

  • 切换到RSA密钥而不是DSA密钥

  • 找到Math::BigInt版本1.78的RPM或安装Math::BigInt

的副本

第三种选择有许多缺陷,如果你决定加入它,我建议采取以下步骤:

installed

  • run

  • App::cpanminus
  1. 确保您的path

有一个gcc path wget -O- http://cpanmin.us ~/perl5/bin

使用cpanm --local-lib=~/perl5 Math::BigInt

  • add use lib "$ENV{HOME}/perl5";Math::BigInt安装到主目录中,到脚本的开头,以便找到新的模块
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3969463

复制
相关文章

相似问题

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