Net::OpenSSH中master_opts指定不验证hostkey

use Net::OpenSSH;
our $PC2         = "testPC2";

our $pc2_ssh             = Net::OpenSSH->new(
                                  "$PC2",
                                  user     => "root",
                                  password => "password",
                                  master_opts => [-o => "StrictHostKeyChecking=no"]
                                 )
                                 or die "Error: $@";

$out = $pc2_ssh->capture2({ timeout => 10 },"ifconfig");
$pc2_ssh->error and
      warn "operation didn't complete successfully: ". $pc2_ssh->error;


如果不加master_opts => [-o => "StrictHostKeyChecking=no"

在capture时会出错,error信息如下:

operation didn't complete successfully: unable to establish master SSH connection: the authenticity of the target host can't be established, the remote host public key is probably not present on the '~/.ssh/known_hosts' file at ssh.pl line。


master_opts中使用的是linux下ssh的命令参数,可在linux下通过man ssh查看
————————————————
版权声明:本文为CSDN博主「zy12805」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhangyuan12805/article/details/80047158

 

When connecting to a server for the first time, a fingerprint of the server's public key is presented to the user (unless the option StrictHostKeyChecking has been disabled).  Fin‐
     gerprints can be determined using ssh-keygen(1):

           $ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

posted @ 2019-12-09 10:38  kissrule  阅读(291)  评论(0编辑  收藏  举报