【问题标题】:Using ssh in perl script在 perl 脚本中使用 ssh
【发布时间】:2013-07-01 17:54:48
【问题描述】:

我试图在 perl 中使用 ssh 执行无密码登录。我不知何故坚持以下错误消息:

ssh: Could not resolve hostname : Name or service not known
lost connection

以下是我在 perl 脚本中引发此错误的代码的一部分:

$dut_ip_addr="10.0.0.110";
system("scp run_application.sh isq\@\$dut_ip_addr\:\/home\/isq\/");

任何帮助将不胜感激

【问题讨论】:

    标签: perl ssh


    【解决方案1】:

    这是你的问题:

    \$dut_ip_addr
    

    你为什么要转义美元符号?这样,Perl 不会为您插入该变量,scp 将尝试连接到$dut_ip_addr,这当然会失败。

    您的代码中还有几个反斜杠没有多大意义。我建议,你做这样的事情:

    $dut_ip_addr = "10.0.0.110";
    my $login    = "isq";
    my $path     = "/home/isq/";
    my $scp_command = sprintf 'scp run_application.sh %s@%s:%s', $login, $dut_ip_addr, $path;
    system( $scp_command );
    

    【讨论】:

      【解决方案2】:

      您可以使用Net::OpenSSH 并忘记所有烦人的引用细节:

      use Net::OpenSSH;
      
      my $ssh = Net::OpenSSH->new($dut_ip_addr, user => 'isq');
      $ssh->scp_put('run_application.sh', '/home/isq/run_application.sh');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-20
        • 1970-01-01
        • 2020-01-06
        • 1970-01-01
        • 2011-02-23
        • 2014-12-29
        • 2016-08-16
        相关资源
        最近更新 更多