我一直在尝试使用 perl 连接到 sftp 服务器,我尝试过几个模块和 puTTy,但我没有成功。
use Net::SFTP::Foreign;
use Net::SFTP::Foreign::Backend::Net_SSH2;
use Net::SSH2;
my ($host) = 'xxx.xxxx.xxx';
my ($user) = "user";
my ($pass) = "password";
my $ppk_filepath = 'private_file.ppk'
my $ssh2 = Net::SSH2->new();
$ssh2->connect($host) or die "connect failed";
$ssh2->debug(1);
$ssh2->auth_publickey($user, undef, $ppk_filepath, $pass) or $ssh2-> die_with_error;
my $sftp = Net::SFTP::Foreign->new(ssh2 => $ssh2, backend => 'Net_SSH2');
$sftp->error and die "Unable to stablish SFTP connection: ". $sftp->error;`
Run Code Online (Sandbox Code Playgroud)
我通常会收到此错误:
Unable to extract public key from private key file: Wrong passphrase or invalid/unrecognized private key …
我想为字符串或变量添加双引号,我还没有找到太多关于它的信息,我知道它是通过正则表达式完成的。例如我有这样的变量
my $ movie = "Spiderman";
Run Code Online (Sandbox Code Playgroud)
或者这样
my $ movie = "Lord of rings";
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像这样
$ movie = "" Spiderman "";
$ movie = "" Lord of rings "";
Run Code Online (Sandbox Code Playgroud)
我会很感激一些线索或想法。