Perl远程写文件连接错误消息Net :: SFTP :: Foreign

时间:2012-06-20 06:22:47

标签: perl ssh sftp perl-module ssh-keys

当我手动运行此Perl脚本时,它可以建立连接。但是当我在系统中实现时,它会显示:authenticity of the target host can't be established, the remote host public key is probably not present on the '~/.ssh/known_hosts' file

我需要帮助和建议。

my $host = "xxxs.com";
my $sftp = Net::SFTP::Foreign->new($host,user => 'xxx', password => 'xxx',
                                   more => '-v',stderr_fh => $ssherr);

2 个答案:

答案 0 :(得分:2)

查看Net :: SFTP :: Foreign doc中的FAQ。它是在主机密钥检查下提交的,是最后一个条目。这是一段摘录。

  

主机密钥检查

     

问:使用密码验证连接到远程服务器失败   出现以下错误:

The authenticity of the target host can not be established,
connect from the command line first
     

答:这可能意味着来自远程服务器的公钥是   没有存储在~/.ssh/known_hosts file中。从中运行SSH连接   命令行作为与脚本相同的用户,并在何时回答是   要求确认提供的钥匙。

那里也有一个例子。

答案 1 :(得分:0)

我的解决方案是:

my $ftp = Net::SFTP::Foreign->new( $HOST, 
                                    user => $USERNAME, 
                                    password => $PASSWORD, 
                                    more => [-o => 'StrictHostKeyChecking no'] );

StrictHostKeyChecking在哪里做到了。

参考:https://www.freebsd.org/cgi/man.cgi?query=Net::SFTP::Foreign