필자는 SCP를 통해 원격 컴퓨터로 파일을 보내려고하는 Perl에 다음 스크립트를 작성했습니다. Expect를 사용하여 암호를 전달하려고합니다. 지금까지 스크립트는 다음과 같습니다.SCP는 펄 스크립트를 사용하여 파일을 전송합니다.
#!/usr/bin/perl
use Net::FTP;
use Net::SCP;
use Net::SCP::Expect;
sub scp_backup{
$n = scalar(@_);
if ($n == 7)
{ my $scp_conn = Net::SCP->new($ip, $username) or die "\nCan't open $ip";
#die
my $dest="/my/remote/location/";
my $testfile = "/pah/to/my/file/testing.txt";
unless ($scp_conn->scp($testfile => $dest))
{ my $scp_conn_ex = Net::SCP::Expect->new;
$scp_conn_ex->login($username, $password);
}
}
else
{
print "\nNot enough args\n\n";
}
print "\nTotal items passed:$n\n";
}
$name = "testuser";
$tfr_type = "scp";
$ip = "XX.XX.XX.XX";
$username = 'testuser_name';
$password = 'testpass';
&scp_backup($name, $tfr_type, $ip, $username, $password);
그러나 전송이 발생하지 않는 것 같습니다. 또한 오류가 발생하지 않습니다. 내가 어디로 잘못 갔니?
을 당신이 대신 암호로 인증 된 모든 좋은 이유가 개인 키? – michas
@michas - 이는 사용자가 개인 키 또는 비밀 번호 중 하나를 선택할 수있는 선택권이 주어 졌기 때문입니다. – rahuL