我需要在 Windows 计算机上使用 SFTP 将文件放入远程目录中。我尝试过 Net::SFTP::Foreign,但无法使用它,因为它需要 IO::Pty,而 Windows 计算机上不可用。最好/最简单的方法是什么?
更新请求的信息:
以下是我正在使用的版本:
Net::SFTP::Foreign
:v 1.89
Net::SSH2
:v 0.69
Net::SFTP::Foreign::Backend::Net_SSH2
:v 0.09
这是我的代码的要点:
$ssh2 = Net::SSH2->new();
$ssh2->connect($host) || die "connect failed";
$ssh2->auth_password($user, $pass) || die "password auth failed";
$sftp = Net::SFTP::Foreign->new(ssh2 => $ssh2,
backend => 'Net_SSH2');
$sftp->error and
die "Unable to stablish SFTP connection: ". $sftp->error;
现在我只是想建立连接。我需要将文件放在服务器上。我收到的错误如下:
Net::SSH2::timeout(ss, timeout) at C:/Strawberry/perl/site/lib/Net/SSH2.pm line 111, <STDIN> line 1.
最佳答案
首选使用方式Net::SFTP::Foreign在Windows中可能是使用Net::SFTP::Foreign::Backend::Net_SSH2后端(更新:CPAN 提供的 Perl 模块)使用 Net::SSH2在幕后(它已经包含在 Strawberry Perl 中,更新:否则,您将需要自己构建和安装 libssh2,这有时并不像应有的那么容易)。
另一个选择是tell Net::SFTP::Foreign
使用 plink
命令运行 SSH 连接(在模块文档中搜索 plink
)。 更新:plink
是 PuTTY
应用程序发行版的一部分,这是一个非常流行的 SSH 客户端,可能已经安装在该计算机中。
最后你也可以尝试使用Net::SSH::Any它为 Net::SFTP::Foreign
提供自己的后端,并且可以在多个 SSH 客户端和模块之上运行...但它仍处于测试阶段!
关于Perl - 在 Windows 上建立 SFTP 连接的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49889341/