systemd 在 ssh 登录时启动不需要的桌面进程

systemd 在 ssh 登录时启动不需要的桌面进程

当我 ssh 到我的媒体服务器时,我启动了一堆未经请求的进程:

/usr/lib/systemd/systemd --user
/usr/bin/dbus-broker-launch --scope user
dbus-broker
/usr/bin/pulseaudio --daemonize=no --log-target=journal

当然,如果您要启动 GUI 会话,您只需要pulseaudio 和dbus。

我可以杀死 systemd,那些进程也会死掉——它似乎不会伤害我的 ssh 会话中的任何东西。

更糟糕的是,当我注销时这些进程并没有终止。

我该如何阻止这个?

我可以

systemctl --user disable pulseaudio.service dbus-broker.service

...但是如果我进行 GUI 登录(例如在显示器上或在无头摇摆会话中),我将需要这些。

我本以为世界各地的系统管理员会抓住他们的干草叉,向 Castle Systemd 进军,因为他们对简单的 ssh 登录创建的虚假进程感到愤怒 - 更糟糕的是,让它们在注销时继续运行。

这是在 fedora-33 上

答案1

用户会话的启动是由调用引起的pam_systemd.so(在 debian 系统上,这是由中的/etc/pam.d/common-session一行引用的)。@include common-session/etc/pam.d/sshd

放入UsePAM no你的/etc/ssh/sshd_config以防止sshd使用整个可插拔的身份验证模块机制systemd挂钩。

或者,您可以仅注释掉@include common-session中提到的行/etc/pam.d/sshd

相关内容