2010-08-18 2 views
1

Я пытаюсь использовать perl Net::FTPSSL для подключения к хосту. Когда я запускаю скрипт, он зависает и, в конце концов, отключается в журналах ошибок, но не в браузере. Проблема заключается в создании нового соединения. Если я использую Filezilla для подключения, появляется предупреждение о приостановке/ответе, что ключ хоста неизвестен. Когда я 'ok' в Filezilla, он передает команду «Trust new Hostkey: Once» и отправляет пароль и регистрируется. Если это моя проблема, как мне отправить это «ok»? Вот мой код - он зависает во второй строке - до того, как добрался до имени пользователя/пароля.Perl Net :: FTPSSL, не будет подключаться, тайм-аут или ошибки броска

код я использую:

use Net::FTPSSL; 
$ftpobj = Net::FTPSSL -> new('host.com', Port => 21) or die "Can't open server."; 
$ftpobj -> login("user","pass"); 
$ftpobj -> get ("file.csv"); 
$ftpobj -> quit; 
+0

Конечно, я по-прежнему играл с этим и менял шифрование по умолчанию 'E' на 'I' + добавил Croak => 1, что дает лучшие ошибки, и теперь я получаю: «Не удается открыть tcp связь!» Итак, очевидно, что «я» (неявный) приводит к сбою соединения, что заставляет меня думать, что «Е» хочет подключиться. Помогает ли это больше? – Tom

ответ

1

Это может быть преднамеренным, но SFTP, как правило, размещается на порту 22, и у вас есть порт 21.

+0

Да, вы правы, я оставил его в порту 21, который находится в большинстве примеров, найденных с информацией о pm. Я действительно пробовал 21 и 22 (это то, что хозяин сообщил мне использовать). – Tom

0

SFTP и FTPS являются две совершенно разные протоколы:

  • FTPS является FTP поверх SSL или TLS
  • SFTP является протокол передачи файлов, который работает поверх SSH