将 netplan 的启动依赖项添加到 ssh

将 netplan 的启动依赖项添加到 ssh

默认情况下,ssh 绑定到 0.0.0.0:22,这显然没有问题。但现在,我在系统中添加了一个 gitlab docker 容器(使用端口 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/

相关内容