Вопрос или проблема
Так что мне удалось создать пользовательский ISO с использованием файла preseed, который автоматически устанавливает операционную систему, все работает нормально, НО установка пакета openssh-server… Я не знаю, что еще делать.
В моем файле preseed есть следующие строки:
#Добавить пакет
d-i pkgsel/include string openssh-server build-essential
Однако, когда я вхожу в систему, пакет не установлен. Мне также нужно включить возможность входа с правами root, по другим причинам, поэтому мне нужно изменить файл sshd_config. Я также пробовал следующие два варианта, но, похоже, они не работают, потому что пакет openssh-server не устанавливается изначально:
ubiquity ubiquity/success_command string sed -i '/PermitRootLogin/c\PermitRootLogin yes' /etc/ssh/sshd_config
и
d-i preseed/late_command string sed -i '/PermitRootLogin/c\PermitRootLogin yes' /etc/ssh/sshd_config
Какой лучший способ сначала добавить пакет ssh-сервера? А затем изменить файл sshd_config? Чтобы при загрузке ОС сервис ssh был запущен и работал.
Мы использовали и тестировали следующий подход вместе с образом netboot Ubuntu.
d-i passwd/root-login boolean true
d-i passwd/root-password-crypted password <password>
d-i passwd/make-user boolean false
d-i pkgsel/include string openssh-server
d-i preseed/late_command string \
in-target sh -c 'sed -i "s/^#PermitRootLogin.*\$/PermitRootLogin yes/g" /etc/ssh/sshd_config';
Используйте следующую команду для генерации пароля:
printf "please-change-password" | mkpasswd -s -m sha-512
Здесь вы найдете более сложный подход с использованием публичных ключей ssh по умолчанию. Он все еще содержит все подсказки в файле preseed относительно входа с паролем.
Ответ или решение
Для установки пакета openssh-server с помощью файла preseed и последующей настройки конфигурации SSH, необходимо учитывать несколько ключевых моментов, чтобы обеспечить корректную автоматизацию процесса установки операционной системы. В данном ответе мы подробно рассмотрим этапы, необходимые для успешной установки и настройки SSH.
1. Подготовка файла preseed
Вам нужно включить пакет openssh-server
в процессе установки системы. Для этого добавьте следующую строку в ваш файл preseed:
d-i pkgsel/include string openssh-server
Эта строка указывает установщику, что пакет openssh-server должен быть включен в список устанавливаемых пакетов.
2. Включение входа под root
Если вы хотите разрешить вход под пользователем root, необходимо указать соответствующие параметры для файла preseed. Ниже представлены команды, которые нужно добавить в файл:
d-i passwd/root-login boolean true
d-i passwd/root-password-crypted password <ваш_зашифрованный_пароль>
d-i passwd/make-user boolean false
Чтобы получить зашифрованный пароль, используйте следующую команду в терминале:
printf "ваш_пароль" | mkpasswd -s -m sha-512
3. Изменение конфигурации SSH
Для изменения файла конфигурации SSH вам потребуется выполнить команду после завершения установки. Это делается с помощью late_command
. Измените ваш файл preseed, добавив следующую строку:
d-i preseed/late_command string \
in-target sh -c 'sed -i "s/^#PermitRootLogin.*$/PermitRootLogin yes/g" /etc/ssh/sshd_config'
Эта команда изменит строку PermitRootLogin
в файле sshd_config
, убрав символ #
, который запрещает вход под root.
4. Завершение настройки
После добавления всех указанных строк, ваш файл preseed должен быть готов. Убедитесь, что вы проверили синтаксис и форматирование, чтобы избежать ошибок во время установки.
5. Тестирование ISO
Создайте новый ISO-образ с вашим обновленным файлом preseed и протестируйте его на виртуальной машине или в тестовой среде. Убедитесь, что openssh-server
устанавливается и что вы можете входить под пользователем root.
Заключение
Следуя вышеуказанным рекомендациям, вы сможете успешно установить пакет openssh-server
и настроить его для входа под пользователем root с помощью файла preseed. Это заметно упростит процесс развертывания вашей системы в автоматическом режиме, удовлетворяя все требования к безопасности и функциональности.
Для дополнительной информации и сложных сценариев настройки, вы можете обратиться к документации и ресурсам, приведенным в сообщении, или другим специализированным источникам.