Добавить загрузочную зависимость от 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/
,