2012-06-20 4 views
1

Когда я вручную запускаю этот скрипт на 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.Сообщение об ошибке удаленного подключения к файлу Perl Net :: SFTP :: Foreign

Мне нужна помощь и совет по этому вопросу.

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

Если бы вы могли поместить остальную часть кода может помочь больше. Что значит «внедрить в систему»? – spydadome

ответ

2

Посмотрите на FAQ в сети :: SFTP :: Внешняя док. Он подан под номером Проверка ключа хоста и является последней записью. Вот выдержка.

Host key checking

Q: Connecting to a remote server with password authentication fails with the following error:

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

A: That probably means that the public key from the remote server is not stored in the ~/.ssh/known_hosts file . Run an SSH Connection from the command line as the same user as the script and answer yes when asked to confirm the key supplied.

Существует также пример.

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

+0

Не отключайте строгую проверку ключа хоста, если вы не знаете, что делаете! Цитирование [документации модуля] (https://metacpan.org/pod/Net::SFTP::Foreign#Host-key-checking): «Ваш клиент SSH может также поддерживать некоторый флаг, чтобы отключить эту проверку (строгий ключ хоста) , но это может испортить безопасность протокола SSH, поэтому я рекомендую его использовать " – salva

Смежные вопросы