好的 - 这是我过去已经使用过很多次的东西 - 一个启用了 XDMCP 的 X 服务器,它可以提供包括登录处理程序在内的良好且出色的会话。
我拥有的:
- 在 ESXi 上运行的虚拟 Ubuntu 机器 - 我希望这台机器就像 Windows 终端服务器一样。
- 通过以下方式设置有效的 VNC
x11vnc
- 如果您有一个正在运行的会话,则此方法可行,但如果您想登录并创建新会话,则不行。此外 - 在多用户框上相当混乱 lightdm
对和进行了大量实验gdm
,试图使XDMCP
功能正常运行。编辑/etc/lightdm/lightdm.conf
和/etc/gdm/*
在某种程度上正在发挥作用。我可以通过 lightdm 运行登录管理器,但一旦登录,用户就只能挂起,没有会话可以玩。
在lightdm
(我现在所在的地方),我的lightdm.conf
有这个:
[SeatDefaults]
allow-guest=false
[XDMCPServer]
enabled=true
port=177
这里有一些事情我认为我只是不明白——这是我想要一些非常好的答案的地方:
XDMCP 仍然存在(通过 SSH 或不通过 SSH),尽管它有点老旧和过时。是否有我不知道的新东西(如新协议)我应该使用?
这类东西的用户群是否正在缩小?我是否应该采用不同的策略?我真的不想这样做,因为我喜欢终端服务器。
这当然是我真正寻找的答案:
- 有人可以指出我在完全默认的 Ubuntu 14.04.2 桌面版(64 位)中需要更改的配置文件
gdm
中的确切位置吗?lightdm
我知道有像 LTSP 这样的项目,但这不是我想要的,因为我不想让我的客户启动到 Ubuntu 设置或任何东西 - 他们只需要能够像使用远程桌面启动 Windows 会话一样登录。我现在真的感到非常沮丧 - 十年前我工作得非常顺利,但现在我完全找不到可行的解决方案。
答案1
好的 - 我终于搞明白了。正如@gnur 所建议的那样,xrdp
这是可以使用的东西,但不是开箱即用的。Ubuntu 附带的 XRDP 似乎比较旧,因此:
我已经做了一些额外的事情以使事情完全顺利:
- XRDP 的工作方式与其他 X 的工作方式不同
xmodmap
,因此如果您的键盘在 XRDP 会话中无法按您希望的方式工作,您必须:- 登录到真正的控制台会话(即不是通过 XRDP,而是通过 ESXi 控制台或物理方式)并在该会话中调整内容以适应您的键盘布局。尝试
setxkbmap -model pc104 -layout <your-layout>
(dk
就我而言) - 然后将工作布局转储到
.ini
XRDP 可以加载的文件中。请执行以下操作:xrdp-genkeymap mymap.ini
/var/log/xrdp.log
通过查看类似 的内容来弄清楚文件的实际名称local keymap file for 0x0406 found
。然后将文件命名为/etc/xrdp/km-0406.ini
。这需要一段时间才能弄清楚。
- 登录到真正的控制台会话(即不是通过 XRDP,而是通过 ESXi 控制台或物理方式)并在该会话中调整内容以适应您的键盘布局。尝试
- 修改您的
/etc/xrdp/xrdp.ini
,以便您有一个如下所示的会话描述:[xrdp1] name=sesman-Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1 delay_ms=2000
关键部分是lib
-delay_ms
没有延迟,登录 XRDP 会话后我没有桌面。似乎底层 VNC 会话需要一点时间才能准备好,如果连接尝试得太早,您将一无所获。 ~/.xsession
在您的文件中放入一些合理的内容。我已经这样做了xfce4-session
,但这样做还带来了另一个奇怪的问题 - 终端窗口中的 Tab 补全不起作用。显然,XFCE 使用 Tab 键进行窗口切换。要修复此问题,您需要编辑(也许还有 GUI 功能)~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
并应用所述修复程序这里。
就是这样!运行这个后,我就有了一个非常好的 XDMCP 替代品,它让用户可以像对待 Windows 会话一样对待 Ubuntu 会话。正如我想要的那样 :-)
编辑 使用了一段时间后,我发现这个解决方案虽然可行,但不太稳定。有时,会话重新连接不起作用,用户将处于不确定状态,根本无法登录。重新启动服务可以解决这个问题,但效果并不好。
所以 - 我又找了些可行的解决方案 - 终于找到了!我的新好朋友是x2go,它是一个独立的 X 服务器,带有一个特殊的客户端包,适用于多种操作系统。
编辑2: 好的 - 那就再多说一点吧。我发现虽然 X2go 很不错,但 Windows 客户端有一个怪癖,几乎阻止它使用基于密钥的 SSH 登录,所以我不得不为我的桌面主机启用常规 PW 登录。这不是最佳选择,但这并不能改变 X2go 在所有其他方面都运行良好的事实。
编辑3:
Scarygliders 目前有一个非常好的脚本,可以获取、编译和安装 RDP 会话设置所需的一切。我几乎消除了对我发现的其他东西的需求。获取脚本这里通过克隆。然后运行X11rdp-o-matic.sh --justdoit
。我现在有一个桌面主机,为五个用户提供服务,他们都在进行 Python 开发等。非常好。