【问题标题】:Perl LFTP Pipe Using SSH Key使用 SSH 密钥的 Perl LFTP 管道
【发布时间】:2018-06-17 19:16:11
【问题描述】:

我目前可以使用用户名/密码组合连接到 SFTP 服务器:

print "Attempting connection...\n";

open( my $LFTP,'|-', "lftp -u $ftpuser,'$ftppwd' -e open -p $ftpport $ftpserver" ) or die "Cannot open lftp: $!";

print $LFTP <<"END";
                    ls
END
close($LFTP); # die unless lftp exit code is 0

exit 0;

如何更改此代码以使用通过密码加密的 SSH 密钥连接到不同的服务器?

这是我尝试过的:

print "Attempting connection...\n";

# $ftppwd is blank now!

open( my $LFTP,'|-', "lftp -u $ftpuser,'$ftppwd' -e 'set sftp:connect-program \"ssh -a -x -i $keypath\"; open $ftpserver;'" ) or die "Cannot open lftp: $!";

print $LFTP <<"END";
                                ls
END
close($LFTP); # die unless lftp exit code is 0
exit 0;

输出卡在:

Attempting connection...
`ls' at 0 [Connecting...]

提前感谢您的帮助..

【问题讨论】:

  • 你为什么不为此使用 Perl 模块(Net::SFTP::Foreign)?

标签: perl ssh sftp lftp


【解决方案1】:

在 -e 参数内的 open 命令中添加 -u 选项,并使用密码短语作为密码。您还应该使用 url 语法来选择 sftp 协议,例如sftp://user:phrase@server

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-17
    • 2012-07-09
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 2021-06-06
    相关资源
    最近更新 更多