在 LXC 机器上重新启动 Ubuntu 22.04 后 SSH 服务不复存在

在 LXC 机器上重新启动 Ubuntu 22.04 后 SSH 服务不复存在

Ubuntu 上某些 SSH 服务在重启后会死机……至少他们是这么说的。状态为“不活动(死机)”,但您可以连接到服务器。这里可能是什么问题?可以检查什么?

一些可能重要的因素:

  • 这些是 Proxmox 8 主机(ZFS/LXC)上的虚拟服务器。
  • 在 CentOS 上,一切运行良好,大部分底层运行着相同的程序(相同类型的服务、相同的物理基础设施)。
  • 最近迁移到 Ubuntu 22.04.2 LTS(在新虚拟机上重新安装了服务)。
  • 当 SSH 处于“不活动”状态时,我可以连接到它。
  • 当 SSH 处于“非活动”状态时,它不会记录任何内容。例如,这是空的:journalctl -u ssh --since yesterday
  • 当 SSH 处于“非活动”状态时,它很不稳定。例如,scp在运行脚本时会随机断开连接(该脚本在迁移到 Ubuntu 之前运行良好且非常稳定)。

检查服务器的日志

这是我用来检查服务的循环:

# check ssh service status
# (xargs = trim)
for someServer in ${serverList[@]}
do
 connectionString=`getConnectionString "$someServer"`
 status=`ssh $connectionString "service ssh status | grep active" | xargs`
 printf "%15s: $status\n" $someServer
done

完整状态信息:

# service ssh status
○ ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:sshd(8)
             man:sshd_config(5)

答案1

该问题是由于ssh.socket在 Ubuntu 上运行引起的。当您将其设置为禁用时,SSH 服务在重新启动后可以正常启动。

顺便提一下,AppArmor 在 LXC 上也无法正常运行,至少在 Proxmox 7 和 8 上是如此。AppArmor 是 SSH 服务的依赖项。如果采取其他预防措施,AppArmor 似乎不是必需的。

相关内容