Рекомендации по загрузке сервера 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