我试图在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\/");
非常感谢任何帮助
答案 0 :(得分: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 );
答案 1 :(得分: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');