Я реализую базовый сценарий развертывания, и для sshd_config единственное изменение, которое мне нужно внести, - это PermitRootLogin yes на PermitRootLogin без пароля. Я прочитал документы, и они не упоминают об этом, но это не значит, что это невозможно.
Могу я указать второй PermitRootLogin? Т.е. echo 'PermitRootLogin без пароля' >> / etc / ssh / sshd_config
Если да, то это безопасно?
Обновления на основе комментариев:
1) Я знаю, что могу проанализировать файл и изменить переменную. Однако мой вопрос все еще остается.
Нет.
Вы можете просто проверить это, добавив строку и проверив, можете ли вы войти в систему. Затем вы можете закомментировать первое вхождение, перезапустить службу и снова протестировать.
Причина: OpenSSH servconf.c
имеет функцию
process_server_config_line()
по линиям 1200-2171 (для 7.9п1)process_server_config_line_depth()
по строкам 1260-2371 (для 8.3п1).Все глобальные директивы обрабатываются только при запуске, а глобальные директивы обрабатываются только один раз. Настройка останется такой же, как и при первом появлении.
С другой стороны, использование одной и той же директивы дважды может привести к недоразумению.
Пожалуйста, пересмотрите анализ файла. Вы также можете заменить весь файл, если применимо.
Нет, в большинстве настроек будет использоваться только первое встретившееся значение; настройку X11Forwarding легко проверить. При этом вы можете воспользоваться настройками переопределения для каждого пользователя, чтобы разрешить то же самое. Обычно они помечаются снизу и поэтому лучше подходят для вашей цели добавления.
При этом, как говорили другие, sed будет гораздо более чистым решением.
sed -i 's/PermitRootLogin yes/PermitRootLogin without-password/g' /etc/ssh/sshd_config