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

Как запустить скрипт в Ubuntu через SSH от имени суперпользователя?

Итак, у меня есть сценарий, который нужно запускать удаленно как root. Это не проблема для большинства дистрибутивов Linux, поскольку у них есть учетная запись root. Но поскольку Ubuntu этого не делает, выполнение чего-либо от имени root требует двухэтапного процесса ввода пароля учетной записи дважды - один раз для входа в систему и один раз для sudo. Процесс SSH для запуска скрипта автоматизирован, поэтому он не может приостанавливаться для ввода пользователем второго запроса пароля.

Кто-нибудь знает, кроме взлома Ubuntu для повторного включения root (не вариант), если возможно автоматическое выполнение сценария SSH с привилегиями суперпользователя на целевой машине? Кроме того, не имея опыта работы с Debian, ведет ли себя Debian так же?

Это не проблема для большинства дистрибутивов Linux, поскольку у них есть учетная запись root. Но поскольку Ubuntu не

Это серьезный приговор? Я еще не видел ни одной системы * nix без root учетная запись.

sudo su

а вы root. После этого используйте passwd для установки пароля root. И БАМ! вы можете войти в систему как root (но только если вы включите RootLogin в ssh)!

ОБНОВЛЕНИЕ: Или используйте ключи ssh, как предлагали другие.

Вы можете использовать ssh только с использованием аутентификации на основе ключей, а затем отредактировать файл sudoers, чтобы не требовать пароль. Это удалит пароль на двух описанных вами шагах.

Чтобы увидеть доступ по ssh на основе ключа ssh:

ssh-keygen
ssh-copy-id dest-server

И для файла sudoers:

sudo visudo -f /etc/sudoers
#uncomment the following and then add yourself to the sudo group
# %sudo ALL=NOPASSWD: ALL

Лучше было бы не запрашивать пароль для sudo только для команд, необходимых для автоматизации этой конкретной функции. Смотрите мой ответ Вот для этого.

Ссылки:
Настройка пользователя без пароля

Как настроить ssh для аутентификации с использованием ключей вместо имени пользователя / пароля?

По умолчанию возможно подключение с учетной записью root. Вам просто нужно настроить ключи ssh для учетной записи root. Добавьте свой открытый ключ в /root/.ssh/authorized_keys

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

serviceaccount ALL = NOPASSWD: ALL

В Debian по умолчанию для учетной записи root будет назначен пароль во время установки. Хотя, если вы используете установщик экспертного режима, вы можете выбрать вариант, который отключит учетную запись root и настроит sudo точно так же, как Ubuntu. Я настоятельно предпочитаю отключенную учетную запись root, потому что у нас много администраторов, и я хочу, чтобы люди входили в систему как они сами, а затем использовали sudo для выполнения задач администратора, чтобы был создан журнал действий root.