Рекомендации по загрузке сервера Ubuntu

Когда я создаю новые экземпляры Ubuntu 12.10, я обычно загружаю их вручную, используя SSHing на компьютере и редактируя sudoers, чтобы установить NOPASSWD для пользователя по умолчанию (например, ec2-user, azureuser и т. Д.). Тогда мои установочные скрипты могут выполнять различные команды без указания пароля.

Я ничего не имею против паролей. Просто когда я пытаюсь сделать sudo на основе пароля через SSH с использованием bash-скрипта, sudo жалуется, что tty отсутствует ("sudo: tty отсутствует и не задана программа askpass").

Кроме того, мне нужно, чтобы это было полностью автоматизировано - не нужно, чтобы кто-то вводил пароль вручную.

Несколько вопросов:

1) Подход на правильном пути? В частности, является ли использование NOPASSWD плохой идеей? Я предполагаю, что защита закрытого ключа SSH пользователя по умолчанию здесь подходит - просто относитесь к этой учетной записи как к учетной записи root.

2) Если это не так, то как я могу преодолеть возражение "нет присутствия", не вводя пароли вручную?

3) Если NOPASSWD в порядке, то как мне автоматизировать редактирование sudoers? Кажется, мне нужно использовать пароль, если только для sudo команды visudo.

Я думаю, что я мог бы сделать всю работу вручную, а затем создать новый образ, но я бы предпочел просто оставить базовый образ и затем написать сценарий, если это возможно.

1 ответ

Решение

Просто мысль, но почему бы просто не разрешить корневой доступ через SSH с аутентификацией на основе ключей, как в PermitRootLogin without-password,

Если у вас есть потребность в сильной настройке безопасности, вы, безусловно, можете это исправить после завершения базовой установки. Но, на мой взгляд, риск минимального доступа к настройке учетной записи root на основе ключа для начального периода начальной загрузки установки компьютера.

3) Если NOPASSWD в порядке, то как мне автоматизировать редактирование sudoers? Кажется, мне нужно использовать пароль, если только для sudo команды visudo.

Ubuntu поддерживает includedir /etc/sudoers.d вариант. Так что ваша первоначальная настройка очень проста. Просто как то так.

echo "adminuser ALL=NOPASSWD: ALL" > /etc/sudoers.d/boostrap
chmod 0400 /etc/sudoers.d/boostrap
Другие вопросы по тегам