0

我试图在 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\/");

任何帮助将不胜感激

4

2 回答 2

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 );
于 2013-06-30T14:18:11.590 回答
0

您可以使用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');
于 2013-07-01T09:54:48.350 回答