Назад | Перейти на главную страницу

Могу ли я перезаписать параметр в sshd_config повторяющимся параметром

Я реализую базовый сценарий развертывания, и для 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