Я использую Net :: SSH :: Perl для выполнения команды на удаленном сервере следующим образом:
use Net::SSH::Perl;
my $ssh = Net::SSH::Perl->new($host);
$ssh->login($user, $pass);
my ($stdout, $stderr, $exit) = $ssh->cmd($cmd);
Но когда я выполняю приведенный выше скрипт, снова появляется запрос пароля. То есть пароль, который я указал в $ pass, не используется для установления соединения ssh. Почему это? Есть идеи, как мне это преодолеть? Я даю ниже отладочную информацию:
serv1: Reading configuration data /root/.ssh/config
serv1: Reading configuration data /etc/ssh_config
serv1: Allocated local port 1023.
serv1: Connecting to 15.154.59.63, port 22.
serv1: Remote protocol version 1.99, remote software version OpenSSH_4.2
serv1: Net::SSH::Perl Version 1.34, protocol version 1.5.
serv1: No compat match: OpenSSH_4.2.
serv1: Connection established.
serv1: Waiting for server public key.
serv1: Received server public key (768 bits) and host key (1024 bits).
serv1: Host '15.154.59.63' is known and matches the host key.
serv1: Encryption type: DES3
serv1: Sent encrypted session key.
serv1: Received encryption confirmation.
serv1: RSA authentication failed: Can't load public key.
serv1: Doing challenge response authentication.
Password:
Запрос пароля не должен быть правильным, учитывая, что я уже ввел пароль в переменной $ pass?
ОБНОВЛЕНИЕ (на основе полученных комментариев):
Я попробовал следующее:
my $ssh = Net::SSH::Perl->new($host, debug =>1, identity_files => []);
Теперь я не получаю сообщение «Ошибка аутентификации RSA:», но все равно появляется запрос пароля. Я даю ниже отладочную информацию:
serv1: Allocated local port 1023.
serv1: Connecting to 15.154.59.63, port 22.
serv1: Remote protocol version 1.99, remote software version OpenSSH_4.2
serv1: Net::SSH::Perl Version 1.34, protocol version 1.5.
serv1: No compat match: OpenSSH_4.2. kf-linux-dm3: Connection established.
serv1: Waiting for server public key.
serv1: Received server public key (768 bits) and host key (1024 bits).
serv1: Host '15.154.59.63' is known and matches the host key.
serv1: Encryption type: DES3
serv1: Sent encrypted session key.
serv1: Received encryption confirmation.
serv1: Doing challenge response authentication.
Password:
Может ли кто-нибудь просветить меня?