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 似乎不是必需的。