如何使用Perl的linux命令连接到sftp

#!/usr/local/bin/perl use strict; use warnings; system("cd $PATH /usr/bin/sftp mysite.com <<!EOF put sample.txt bye !EPF"); 

当我在应用程序complile,它询问密码,如何通过代码本身的用户/密码,

我想要的是,我的脚本不应该问密码。 我想在代码本身设置用户/密码。 用户命令不工作在sftp如何使它。

有了这样一个模糊的问题,很难给出更多的答案。

你有没有试过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; 

你应该得到一个更有意义的错误消息,你可以从那里拿走它。

您可以尝试其他模块,例如Net :: SFTP :: Foreign或Net :: SSH2的SFTP功能。