원격 시스템에서 일련의 명령을 실행해야 하는데 Perl이 로그인 상태를 유지하는 데 문제가 있습니다. ssh 또는 telnet 명령은 서비스 계정으로 로그인되어 있고 비밀번호가 없기 때문에 사용할 수 없습니다. 아래에서 이것을 시도하고 있지만 프로그램이 시스템에 sshs로 들어가고 ctl+d를 눌러 종료할 때까지 종료되지 않습니다.
system("ssh -qtt $server sudo cp /opt/uc4sand/bin/*.kstr /tmp/sand.kstr; sudo service uc4sand stop");
답변1
문제가 해결되었습니다.
my $ssh = Net::SSH::Perl->new(
$server,
user => 'user';
ssh_arges => {
identity_files => [ '/home/account/.ssh/id_rsa ' ]
debug => 1,
}
) or die "could not open connection $server";