Рейтинг:0

Почему OpenSSH не может привязаться к какому-либо адресу при загрузке?

флаг in

Я работаю над встроенной платой Linux и заметил следующее при загрузке:

[FAILED] Не удалось запустить сервер OpenBSD Secure Shell.

Потом я побежал sudo systemctl статус sshd и получил это:

[sudo] пароль для debian: 
ssh.service — сервер защищенной оболочки OpenBSD
  Загружено: загружено (/lib/systemd/system/ssh.service; включено; предустановка поставщика: enab
  Активно: сбой (результат: код выхода) с понедельника 2022-05-23 19:43:25 UTC; 33с назад
    Документы: человек:sshd(8)
          мужчина: sshd_config(5)
 Процесс: 639 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Процесс: 684 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (код=выход, статус=255/E
Основной PID: 684 (код=выход, статус=255/ИСКЛЮЧЕНИЕ)

23 мая, 19:43:23 iot-server systemd[1]: Запуск сервера OpenBSD Secure Shell...
23 мая 19:43:24 iot-server sshd[684]: ошибка: привязка к порту 22 на 192.168.1.120 fa
23 мая 19:43:24 iot-server sshd[684]: fatal: Невозможно привязать ни один адрес.
23 мая 19:43:25 iot-server systemd[1]: ssh.service: основной процесс завершен, code=ex
23 мая, 19:43:25 iot-server systemd[1]: ssh.service: Ошибка с результатом 'exit-cod
23 мая, 19:43:25 iot-server systemd[1]: не удалось запустить сервер OpenBSD Secure Shell.

Вся помощь, которую я нашел, предполагает, что адрес, который можно связать, уже используется. Но для меня это не работает с самого начала. Самое интересное, что если я бегу sudo systemctl запустить sshd затем он начинает работать, и я получаю:

ssh.service — сервер защищенной оболочки OpenBSD
  Загружено: загружено (/lib/systemd/system/ssh.service; включено; предустановка поставщика: enab
  Активно: активно (работает) с пн 23 мая 2022 г. 19:53:01 UTC; 4 с назад
    Документы: человек:sshd(8)
          мужчина: sshd_config(5)
 Процесс: 1471 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Основной PID: 1472 (sshd)
  Заданий: 1 (лимит: 1026)
 Память: 700.0K
 Группа CG: /system.slice/ssh.service
         |_ 1472 /usr/sbin/sshd -D

23 мая, 19:53:01 iot-server systemd[1]: запуск сервера OpenBSD Secure Shell...
23 мая, 19:53:01 iot-server sshd[1472]: Сервер прослушивает порт 22 192.168.1.120.
23 мая, 19:53:01 iot-server systemd[1]: запущен сервер OpenBSD Secure Shell.

Почему не привязывается при загрузке? Тот факт, что я могу заставить его работать нормально без изменений, указывает на то, что проблемы нет, поэтому я не знаю, чего не хватает.

флаг us
Rob
Похоже, вывод ошибки усечен, возможно, используйте опцию `-l`, чтобы показать ее полностью. - Мое предположение: ошибка «ошибка: привязка к порту 22 на 192.168.1.120» предполагает, что, возможно, ваша конфигурация sshd использует этот конкретный IP-адрес в качестве ListenAddress, а не по умолчанию (по умолчанию ListenAddress не установлен) — и этот IP-адрес может быть еще не настроен и доступен при запуске sshd.
m4l490n avatar
флаг in
@ Роб, я не думаю, что это все. У меня есть другой сервер Debian, где у меня есть `ListenAddress 192.168.1.110`, и он отлично работает. Я скопировал конфигурацию с работающего сервера на свой встроенный сервер и обновил IP-адрес до «ListenAddress 192.168.1.120», так как это его адрес.
mikem avatar
флаг cn
Что-то еще прослушивает порт 22? Что вам показывает «netstat -tulpn | grep 22»? У сервера есть адрес, который вы думаете? Что возвращает «ifconfig -a» или «ip addr show»?
m4l490n avatar
флаг in
@mikem нет, порт 22 ничего не прослушивает, и да, я уверен, что это именно тот адрес, так как я проверил с помощью `ip addr show`. Кроме того, я зарезервировал этот адрес в своем маршрутизаторе, чтобы убедиться, что он всегда одинаков для этой платы. Как я уже упоминал, ничего не кажется неправильным, потому что, хотя это не работает при загрузке, когда плата загружается, я просто делаю «sudo systemctl start sshd», и она начинает работать отлично.
mikem avatar
флаг cn
Возможно, при загрузке sshd пытается запуститься до того, как сеть будет готова. адрес дается dhcp или он статический? Можете ли вы настроить systemd на задержку запуска sshd или поставить его в зависимость от готовности сети? Для тестирования, изменится ли что-нибудь, если вы уберете настройку ListenAddress или измените номер порта?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.