Добавить загрузочную зависимость от netplan в ssh

По умолчанию ssh привязывается к 0.0.0.0:22, что, очевидно, работает без проблем. Но теперь я добавил докер-контейнер gitlab в мою систему (который использует порт 22) и поэтому мне пришлось ограничить службу ssh моего хоста одним IP:

diff -u /etc/ssh/sshd_config_orig /etc/ssh/sshd_config
--- /etc/ssh/sshd_config_orig   2018-02-10 03:31:46.000000000 +0100
+++ /etc/ssh/sshd_config    2019-04-06 13:39:51.291703794 +0200
@@ -14,6 +14,7 @@
 #AddressFamily any
 #ListenAddress 0.0.0.0
 #ListenAddress ::
+ListenAddress 192.168.1.10

 #HostKey /etc/ssh/ssh_host_rsa_key
 #HostKey /etc/ssh/ssh_host_ecdsa_key

Но с этим изменением моя машина больше не загружается должным образом: netplan (который управляет моей сетевой конфигурацией, как указано ниже), кажется, инициализирует сеть асинхронно, в то время как ssh пытается запустить, но не удается, потому что IP еще не существует в системе.

cat /etc/netplan/01-static-ip.yaml 
network:
  version: 2
  ethernets:
    enp6s0:
      addresses:
        - 192.168.1.10/24
        - 192.168.1.234/24
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.223,192.168.1.1]
      dhcp4: no

Каков наилучший подход для добавления зависимости "готовность к сети" к демону ssh?

Моя система - Ubuntu 18.04. Поскольку это безголовый сервер, sshd необходим.

Мой текущий обходной путь использует другой порт и снова использует адрес 0.0.0.0

1 ответ

Стандартный модуль ssh systemd объявляет:

After=network.target auditd.service

Если вам нужно подождать, пока сеть не будет запущена, прежде чем запускать службу, вы должны изменить это устройство, чтобы оно также было установлено после network-online.target,

Для возможности обновления это должно быть установлено как файл конфигурации надстройки в /etc/systemd/system/ssh.service.d/,

Другие вопросы по тегам