我在perl脚本中使用Net::SFTP时出错(远程主机关闭连接)
当我使用Net::SFTP连接到我的SFTP服务器时,我遇到了一个奇怪的错误。 我的脚本从oracle获取SFTP连接信息,然后使用Net::SFTP连接到SFTP服务器。 当我运行我在perl脚本中使用Net::SFTP时出错(远程主机关闭连接),perl,sftp,Perl,Sftp,当我使用Net::SFTP连接到我的SFTP服务器时,我遇到了一个奇怪的错误。 我的脚本从oracle获取SFTP连接信息,然后使用Net::SFTP连接到SFTP服务器。 当我运行perl脚本时,它失败了,出现以下错误: 远程主机关闭了连接。在/usr/local/lib64/perl5/Net/SSH/Perl/AuthMgr.pm 但是,当我直接分配这些connect变量时,脚本会成功运行。我没有更改连接信息。这让我很困惑,相同的值却不同的结果 #$host = $rSelectInfoR
perl
脚本时,它失败了,出现以下错误:
远程主机关闭了连接。在/usr/local/lib64/perl5/Net/SSH/Perl/AuthMgr.pm
但是,当我直接分配这些connect变量时,脚本会成功运行。我没有更改连接信息。这让我很困惑,相同的值却不同的结果
#$host = $rSelectInfoRef->[0][2];
#$user = $rSelectInfoRef->[0][3];
#$password = $rSelectInfoRef->[0][4];
$host = "168.16.5.110";
$user = "test";
$password = "000000";
print "[DEBUG] $host|$user|$password|\n";
my $sftp;
eval {
$sftp = Net::SFTP->new($host, user=>$user, password=>$password);
};
if( $@ ) {
print "[ERROR] $@";
exit -1;
}
我认为问题在于变量没有得到正确的评估。请尝试以下操作,看看是否有效:
$host = $rSelectInfoRef->[0][2];
my %args = (
user => $rSelectInfoRef->[0][3],
password => $rSelectInfoRef->[0][4],
);
my $sftp;
eval {
$sftp = Net::SFTP->new($host, %args);
};
if( $@ ) {
print "[ERROR] $@";
exit -1;
}
您可能想尝试使用。谢谢,哦,您是moudle Net::SFTP::Foreign的作者,几天前,我仍然无法解决问题,所以我尝试了Net::SFTP::Foreign,然后我的脚本成功运行。
$host = $rSelectInfoRef->[0][2];
my %args = (
user => $rSelectInfoRef->[0][3],
password => $rSelectInfoRef->[0][4],
);
my $sftp;
eval {
$sftp = Net::SFTP->new($host, %args);
};
if( $@ ) {
print "[ERROR] $@";
exit -1;
}