【发布时间】:2019-01-30 16:13:28
【问题描述】:
我正在尝试使用 perl Net::SFTP::Foreign 将文件传输到远程主机。但是在建立连接时,我通过 $sftp->error 得到以下错误消息。该程序适用于其他远程主机。
错误信息: 未按预期要求输入密码:0
对应的代码片段:
my %args = (password => $config->[$i]->{'PSWD'}, user => $config->[$i]->{'USERNAME'}, port => $config->[$i]->{'PORT'}, more => [-o => 'StrictHostKeyChecking no'], more => '-v');
$sftp = Net::SFTP::Foreign->new($config->[$i]->{'HOSTNAME'}, %args);
详细日志(相关文章):
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: keyboard-interactive,password
debug1: Next authentication method: keyboard-interactive
Password authentication
此后,程序因上述错误而终止。
【问题讨论】:
-
手动连接主机时,是否要求输入密码?
-
@choroba,是的 - 它在手动连接时要求输入密码。输入密码后我也可以手动连接。
-
尝试将
expect_log_user => 1, more => '-v'添加到%args以获取更多调试信息。我还注意到Net::SFTP::Foreigndoesn't have that error message 的来源(除了在示例程序中)。 -
@DravSloan - 我试过expect_log_user,它给出了密码提示,但输入密码后结果相同。
-
@DravSloan - 我已将详细日志中的相关部分添加到问题中,请查看。
标签: perl