LINUX.ORG.RU
ФорумAdmin

ssh не всегда запускается при старте системы

 , ,


0

2

Иногда, по ощущениям примерно в 5-10% случаев, ssh не запускается при загрузке ос. journalctl выдает следующее:

янв 23 11:32:02 Unit2 sshd[432]: error: Bind to port 22 on 192.168.1.20 failed: Cannot assign requested address.
янв 23 11:32:02 Unit2 sshd[432]: fatal: Cannot bind any address.
янв 23 11:32:02 Unit2 systemd[1]: ssh.service: Main process exited, code=exited, status=255/n/a
После этого ssh можно запустить только при физическом доступе к серверу. Почему так происходит?


Почему так происходит?

Возможно, потому что у тебя в конфиге sshd указан конкретный адрес в Listen, а запуск sshd почему-то не упорядочен относительно запуска интерфейса с этим адресом (а IP_FREEBIND почему-то в sshd не используется).

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)

Почему так происходит?

Стоит неправильная зависимость от сетевых юнитов. Поднятый lo уже может удовлетворять зависимость от поднятого сетевого интерфейса, но у тебя прописано запускать ssh сервер на eth0 или как там он называется, а он ещё не поднят.

Гугли какие есть сетевые зависимости в systemd и правь unit ssh сервера.

Я, к сожалению, с systemd мало знаком.

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

Ну да, там прописан конкретный адрес:

ListenAddress 192.168.1.20:22
но в sshd.service указано
[Unit]
After=network.target auditd.service
т.е., если я правильно понимаю, ssh должен запуститься после полной инициализации сетки со всеми интерфейсами?

a-lexx
() автор топика
Ответ на: комментарий от a-lexx

т.е., если я правильно понимаю, ssh должен запуститься после полной инициализации сетки со всеми интерфейсами?

Это network-online.target

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

В чём проблема слушать 0.0.0.0?

Да просто так захотелось) nginx слушает только один интерфейс на порту 80, sshd пусть слушает тот же интерфейс на порту 22 - красота и порядок)

ss -lt 
State     Local Address:Port
LISTEN    192.168.1.20:http
LISTEN    192.168.1.20:ssh

a-lexx
() автор топика
Ответ на: комментарий от a-lexx

network-online.target

Увы, не помогло. Понаблюдал по логу - wlan0 инициализируется примерно на 3-4 секунде загрузки системы. Создал юнит sshd.timer, который откладывает запуск ssh на 5 секунд. Теперь бинд нормально проходит. Наблюдаю дальше...

a-lexx
() автор топика
Ответ на: комментарий от a-lexx

Создал юнит sshd.timer, который откладывает запуск ssh на 5 секунд.

Вот «оноД» во всей красе. И «кто-то» еще будет называть классические системы инициализации костыльными?
ТС не попросил чего-то сверх естественного. Нормальное желание, sshd на конкретном IP. Да оно из каробки должно работать. Вроде как не какой-то «левый» сервис.

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