Perl Net :: SFTP :: Проблема с подключением к зарубежному Plink - PullRequest
1 голос
/ 04 июля 2011

Во-первых, я новичок в sftp & ssh и довольно плохо знаком с Perl.Я пытаюсь написать скрипт для подключения к удаленному серверу и получения файлов.Оба сервера являются окнами Windows 2003.я установил на сервере сервер sftp и могу подключиться с помощью клиента filezilla с тем же IP-адресом (удален из примера кода из соображений безопасности), именем пользователя и номером порта, указанными в моем коде.

Блок подключениякода, который у меня есть:

my $sftp = Net::SFTP::Foreign->new(
    host    => 'xx.xxx.xxx.xxx', 
    user    => 'radiospx', 
    port    => '22', 
    ssh_cmd => "C:\\Program Files\\putty\\plink.exe",
    more    => [qw(-v -i )]
); 

$sftp->error and die " SSH connection failed: " . $sftp->error;

Когда я запускаю скрипт, я получаю следующий вывод:

Поиск хоста "sftp" не может открыть соединение: Хост не существует Сбой соединения SSH: Соединение с удаленным сервером оборвано в строке import.pl 34

Может кто-нибудь подсказать, где я ошибаюсь.сервер определенно принимает соединения sftp, так как filezilla работает отлично.

1 Ответ

2 голосов
/ 04 июля 2011

параметр -i plink, через который вы проходите more, требует аргумент:

my $sftp = Net::SFTP::Foreign->new(
    host    => 'xx.xxx.xxx.xxx', 
    user    => 'radiospx', 
    port    => '22', 
    ssh_cmd => "C:\\Program Files\\putty\\plink.exe",
    more    => ['-v', -i => "C:\\path\\to\\the\\private.key"]
); 

$sftp->error and die " SSH connection failed: " . $sftp->error;
...