Как я могу подключиться к sftp с помощью команды Linux из Perl - PullRequest
2 голосов
/ 22 сентября 2011
#!/usr/local/bin/perl
use strict;
use warnings;
system("cd $PATH
/usr/bin/sftp mysite.com <<!EOF
put sample.txt
bye
!EPF");

Когда я компилирую приложение, оно спрашивает пароль, как передать имя пользователя / пароль в самом коде,

Что я хочу, мой сценарий не должен спрашивать пароль.Я хочу установить пользователя / пароль в самом коде.пользовательская команда не работает в sftp Как это сделать.

Ответы [ 2 ]

6 голосов
/ 22 сентября 2011

С таким расплывчатым вопросом трудно дать больше ответа ...

Вы пробовали Net :: SFTP модуль?

РЕДАКТИРОВАТЬ:

Исходя из правки вопроса - попробуйте использовать Net :: SFTP :: Foreign

    use Net::SFTP::Foreign;
    use warnings;
    use strict;

    my $host = "xxx.xxx.xxx.xxx";
    my $sftp = Net::SFTP::Foreign->new($host, user => 'user', password => 'pass');
    $sftp->error and die "Something bad happened: " . $sftp->error;
    $sftp->put("sample.txt", "/home/test/test") or die "put failed: " . $sftp->error;

Вы должны получить более значимое сообщение об ошибке, и вы можете взять его оттуда.

1 голос
/ 22 сентября 2011

Вы можете попробовать другие модули, например, Net :: SFTP :: Foreign или функциональность SFTP Net :: SSH2 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...