LINUX.ORG.RU

Перестал запускаться ssh

 


0

0

Одноплатник на armbian. Неизвестно когда и неизвестно после чего пропал доступ по ssh. Среди процессов ssh отсутствует, попытка запустить вручную через service ssh start, дебагом через /usr/sbin/sshd -ddd приводит к ошибке «Missing privilege separation directory /var/run/sshd» (ошибка кое где упоминается в багрепортах, но потдверждения и решения не видно) . Полное удаление и переустановка openssh-* проблему не решает.

В пре-скриптах в /etc/init/ssh.conf и в /etc/init.d/ssh проверка на присутствие и создание /var/run/sshd имеется. Есть смутное подозрение, что проблема могла появиться после какого-то обновления безопасности, потому что образовалась сразу на двух одноплатниках с однотипными функциями.

mkdir /var/run/sshd позволяет запустить сервис, но это решение до перезапуска. Можно было бы запихнуть в скрипт, но хотелось бы добраться до причины и устранить в корне. Заранее спасибо за любые идеи и подсказки.

★☆

Если у тебя в /etc/init.d/ssh есть проверка существования каталога /var/run/sshd и команда его создания, то почему не отрабатывает? Или всё-таки каталог создаётся? С какими правами и кто хозяин?

imul ★★★★★
()

в /etc/init.d/ssh проверка на присутствие и создание /var/run/sshd имеется.

Что-то я потерял Вашу мысль. Если в скрипте прописано создание каталога /var/run/sshd, ио почему он не создается? Команда /etc/init.d/ssh start запускает sshd или нет? Если нет, то создается ли каталог /var/run/sshd?

Serge10 ★★★★★
()
Ответ на: комментарий от vaddd

И руками если сделать
/etc/init.d/ssh start
тоже не создаётся?
Может надо где разрешить старт ssh?

imul ★★★★★
()
Ответ на: комментарий от Serge10

Еще одна странность обнаружилась: если я запускаю /etc/init.d/ssh start, то каталог создается, но сервис вылетает с ошибкой (не успел еще разобраться в логах, похоже что 22 порт занимается и что-то подозрительное про ipv6). При созданном таким образом каталоге сервис запустить или рестартовать не удается.

Если же я создаю каталог вручную, то сервис вручную запускается и работает нормально. В общем, буду смотреть логи после запуска /etc/init.d/ssh start

vaddd ★☆
() автор топика
Ответ на: комментарий от vaddd

если я запускаю /etc/init.d/ssh start, то каталог создается, но сервис вылетает с ошибкой (не успел еще разобраться в логах, похоже что 22 порт занимается и что-то подозрительное про ipv6

Файл /etc/init.d/ssh стандартный, из пакета ssh?

Если порт для ssh переопределить, тоже самое будет?

Serge10 ★★★★★
()
Ответ на: комментарий от Serge10

Файл /etc/init.d/ssh стандартный, из пакета ssh?
Если порт для ssh переопределить, тоже самое будет?

Файл дефолтный, конфиги дефолтные. Уведение порта «вверх» ничего не меняет. По какой-то причине при запуске системы дело до старта /etc/init.d/ssh (или до проверки существования каталога внутри этого скрипта) дело похоже не доходит. Предполагал, что какой-то другой не успевший завершиться сервис мешает нормальному старту ssh, добавлял задержку в sshd.service, тоже без результата.

vaddd ★☆
() автор топика
Ответ на: комментарий от vaddd

Нет, c yes уже больше года работало, ssh не обновлялся, да и один из контейнеров тоже не обновлялся, а сломалось в двух сразу, log apparmor чист. С UsePrivilegeSeparation no стартует после ребута, как я и предполагал.

anonymous_sama ★★★★★
()
Ответ на: комментарий от anonymous_sama

ssh не обновлялся

сломалось в двух сразу

Та же фигня. Видать что-то все-таки обновило без спросу.

UsePrivilegeSeparation no

спасибо, попробуем

vaddd ★☆
() автор топика
Ответ на: комментарий от anonymous_sama

Что обнаружилось:

- при UsePrivilegeSeparation no создавать каталог /var/run/sshd необязательно, ssh запускается и при отсутствии каталога

- лучше тогда уж использовать дефолтное в некоторых дистрибутивах UsePrivilegeSeparation sandbox

- не нравится мне, что кто-то где-то поменял втихомолку то ли дефолтные состояния конфигов, то ли логику работы ssh и разослал это в стиле «a la windows 10»

vaddd ★☆
() автор топика
29 июня 2019 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.