Как я могу выполнить процесс на удаленном компьютере под управлением Linux без SSH. Поскольку для машины запланирована периодическая загрузка PXE, ключ SSH будет изменен, и выполнение процесса через сценарий с использованием SSH исключено. Есть идеи, как это можно сделать?
Регулярная переустановка через pxe не исключает использования ssh.
Я не знаю, какой дистрибутив вы используете, но было бы тривиально, если бы установка pxe добавляла публичные половины ключей ssh в системный authorized_keys
файл. (Я больше всего знаком с Red Hat / Fedora и всегда делаю это со своими настройками pxe.)
Если ваша проблема SSH связана с ключами SSH known_hosts
файл, вы можете отключить проверку ключа хоста. Посмотри на эта почта. Однако вы должны быть уверены, что защищены от атаки MITM.
Для выполнения команды можно создать веб-интерфейс, но вам необходимо предоставить пользователю процесса веб-сервера достаточные разрешения для выполнения необходимых команд (возможно, с использованием sudoers).
Crontab вам поможет. Добавьте свой скрипт в crontab, который автоматически запустит ваш скрипт.
ssh будет безопаснее с ключами на месте; но вы можете настроить веб-сервер на удаленном компьютере и выполнять команды, отправляя их в какой-либо скрипт php или cgi, который затем запускает команду для вас. почему проблема с ssh? Какую команду вы выполняете?
А как насчет использования файла /etc/rc.d/rc.local? Это выполняется во время загрузки.
Чтобы ответить на ваш вопрос, установите соляной миньон и попросите его удалять главный открытый ключ при каждой перезагрузке. Мастер соли может быть настроен на автоподпись этого миньона. Они автоматически повторно согласовывают ключи, после чего миньон будет на шине событий, готовый к выполнению команды после каждой перезагрузки.
Нечестно быть 2017 годом (соли не существовало в 2012 году), но мне просто интересно, смогу ли я снова жить без SaltStack ... заменить рабом Дженкинса? Нет! Совершенно другое дело - рабы Jenkins НЕ будут запускать удаленные команды за вас ...