Назад | Перейти на главную страницу

используя Perl, как я могу автоматизировать вход на удаленный хост Linux с помощью ssh

в настоящее время у меня есть такие операторы, как: system ("ssh -o StrictHostKeyChecking = no root \ @ $ {address} \" cat / var / log / messages ""); Для этого не требовался пароль, так как две системы были настроены с правильным обменом ключами.

теперь это больше не доступно: следовательно:

я хочу уметь:

  1. Войти как "админ"
  2. Введите пароль
  3. сделать sudo -i
  4. предоставить пароль
  5. выполните ту же команду "cat / var / log / messages"

Спасибо, -Камал.

При использовании Perl всегда ищите модуль в CPAN за задачу. Почти наверняка кто-то уже решил вашу проблему. В таком случае: Сеть :: SSH :: Perl.

Вместо использования sudo вы, вероятно, можете просто добавить пользователя «admin» в группу файла / var / log / messages. В типичной системе Debian / Ubuntu это означало бы добавление пользователя «admin» в группу «adm», поскольку это группа файла / var / log / messages.

Чтобы добавить администратора в группу «adm»:

 sudo adduser admin adm

Затем просто используйте ssh без sudo, чтобы перехватить файл.

Другой вариант - отредактировать файл / etc / sudoers (используя visudo), чтобы позволить пользователю с правами администратора запускать эту команду без пароля sudo.

использовать Net :: OpenSSH.

В каталоге примеров из дистрибутива модуля вы найдете несколько скриптов, автоматизирующих взаимодействие с sudo.