Там, где я сейчас нахожусь, у меня есть требование установить PermitRootLogin на no для ssh.
Я хотел бы обновить все свои серверы одновременно с входом без пароля, однако, если не включена учетная запись root, есть ли способ сделать это?
Установите PermitRootLogin на без пароля. Затем установите такой инструмент, как clusterssh. Таким образом, вы можете вручную обновить все серверы одновременно.
Или вы можете инвестировать в реализацию марионетки, которая позволяет легко убедиться, что все всегда идентично на всех серверах (то есть вы можете установить обновления в определенное время на всех машинах одновременно) и не требует входа в систему с правами root. Однако для настройки требуется некоторое время.
Создайте сценарий на сервере, который обрабатывает ваши обновления, затем настройте его в / etc / sudoers, чтобы он мог выполняться без пароля.
User_Alias UPDATEADMINS = user1, user2
Cmnd_Alias UPDATECMDS = /usr/local/bin/updatescript1, /usr/local/bin/updatescript2
Host_Alias UPDATEHOSTS = 10.10.1.0/24
UPDATEADMINS UPDATEHOSTS = NOPASSWD: UPDATECMDS
Очевидно, убедитесь, что сценарии обновления не имеют доступа ни к кому, кроме root. Затем вы можете настроить ключи SSH для пользователей обновлений и выполнить их удаленно через SSH:
$ ssh user1@10.10.2.2 sudo /usr/local/bin/updatescript
root
В этом примере updatecript просто повторяет вывод whoami
. Если ваш сценарий требует ввода, чрезвычайно важно понимать последствия для безопасности и правильно дезинфицировать этот ввод.
ssh с любым пользователем ... оттуда ... либо su до root ... либо настройте этого пользователя как "sudoer" и sudo yum update.