在控制台将 SSH TTY 会话类型更改为 X11?

在控制台将 SSH TTY 会话类型更改为 X11?

我有一个 Debian 12 VM,当我远程启动它时,用户会话是 TTY,我可以让它在控制台端启动 X11 会话吗?

尝试A

  • KDE 已安装
  • 我选择了plasma-x11作为我的默认会话管理器
  • 我已将默认显示管理器更改为 sddm
loginctl
SESSION  UID USER   SEAT TTY  
      3 1000 user1      pts/0

1 sessions listed.

loginctl show-session 3 -p Type                                   
Type=tty

update-alternatives --config x-session-manager             
There are 3 choices for the alternative x-session-manager (providing /usr/bin/x-session-manager).

  Selection    Path                      Priority   Status
------------------------------------------------------------
  0            /usr/bin/startxfce4        50        auto mode
* 1            /usr/bin/startplasma-x11   40        manual mode
  2            /usr/bin/startxfce4        50        manual mode
  3            /usr/bin/xfce4-session     40        manual mode

Press <enter> to keep the current choice[*], or type selection number: 1

cat /etc/X11/default-display-manager
/usr/sbin/sddm

ls /usr/share/xsessions
lightdm-xsession.desktop  plasma.desktop  xfce.desktop

但我的用户一直登录到 TTY 会话。我该如何解决?

尝试B

  • 我尝试启动 display-manager.service
systemctl start display-manager.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to start 'lightdm.service'.
Authenticating as: root
Password: 
==== AUTHENTICATION COMPLETE ====

loginctl show-session 22 -p Type
Type=tty

但它启动了 lightdm 而不是 sddm,即使我将 x-session-manager 设置为 /usr/bin/startplasma-x11,并且会话仍然是 type=tty。

尝试C

  • 我已经手动启动了sddm
  • 我尝试过startx、startplasma-x11和startkde,但没有成功。
systemctl start sddm.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to start 'sddm.service'.
Authenticating as: root
Password: 
==== AUTHENTICATION COMPLETE ====

startx
/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server
^Cxinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: unexpected signal 2
Couldn't get a file descriptor referring to the console.

startkde
zsh: command not found: startkde

startplasma-x11
$DISPLAY is not set or cannot connect to the X server.

结果,为 sddm 用户启动了 x11 会话,而不是将我的用户会话更改为 X11。

loginctl
SESSION  UID USER   SEAT  TTY  
     22 1000 user1       pts/0
     24  111 sddm   seat0 

2 sessions listed.

当我有常规 X11 会话时,这是我的用户的会话,而不是显示管理器用户的会话。

尝试D

  • 我尝试过使用root权限启动startX并将其分离,所以它不会阻塞终端。
doas startx &
[2] 2446
[2]  + suspended (tty output)  doas startx  

但它不起作用。

答案1

sddm以 user 身份运行会话时sddm,通常意味着它正在显示 GUI 登录屏幕。当您使用它登录时,用户将切换到实际登录的帐户。

但是X11服务器正在启动虚拟机控制台,而不是在基于伪 TTY 的远程会话中。

如果您想要远程 X11 会话,您将需要:

  • 正在运行的 X11 显示服务器在您的本地工作站上,适合其操作系统
  • SSH 会话启用 X11 转发
  • xauth远程主机/VM 上可用的命令和 X11 客户端库。

具体来说,你根本不需要远程 X11 服务器对于基于 X11 的远程会话:它不必运行,甚至不必安装。如果使用 VNC 或 RDP,情况就会有所不同。

当满足所有这些先决条件时,您应该自动获得一个DISPLAY环境设置为的终端会话localhost:10(显示数量可能不同,但会是 10 或更大)。XAUTHORITY如果您的发行版中有必要,还可以设置环境变量。那时,你应该能够运行

startplasma-x11 &

启动 KDE 会话。

相关内容