Это - мой первый выстрел в испытание cgi-perl сценарии. У меня есть SSH, настраивает набор между моим (пользователь root) локальная машина и удаленной машиной. Я пытаюсь выполнить команду на удаленном поле и отобразить вывод на веб-странице, размещенной от моей локальной машины. Сценарий хорошо работает из командной строки однако, это бросает ключевую ошибку SSH при вызове от веб-страницы, потому что пользователь, запускающий скрипт, является апачским и не корневым. Существует ли способ обойти эту проблему?
Если у вас еще нет учетной записи с ограничениями, создайте ее, создайте ключи SSH и добавьте команды, которые пользователю должно быть разрешено выполнять через sudo
в ] / etc / sudoers
(например, через visudo
, подробнее о sudoers
). Это самый безопасный подход, imho.
Вы даже можете ограничить пользователя таким образом, чтобы он мог только выполнять эти команды. Для
я не знаю о Perl, но обычно вы можете указать, какой пользователь должен войти в систему через SSH:
ssh user@host
Обновление:
Используете ли вы Net :: SSH :: Perl
модуль? Если это так, просто установите пользователя
соответственно:
my $host = "perlhowto.com";
my $user = "user";
my $password = "password";
#-- set up a new connection
my $ssh = Net::SSH::Perl->new($host);
#-- authenticate
$ssh->login($user, $pass);
(я только что скопировал и вставил этот код с perlhowto.com
)