好的 - 这是我过去工作过很多次的东西 - 一个启用 XDMCP 的 X 服务器,它提供漂亮而闪亮的会话,包括一个登录处理程序。
我有的:
- 在 ESXi 上运行的虚拟 Ubuntu 机器 - 我希望这台机器类似于 Windows 终端服务器。
- 一个有效的 VNC 设置通过
x11vnc
- 如果您有一个正在运行的会话,这是可以的,但如果您想登录并创建一个新会话,则不行。另外 - 在多用户盒子上相当混乱 lightdm
对and进行了大量实验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 会话。在这一点上,我真的感到非常沮丧——十年前我的工作非常顺利,但现在我完全无法找到一个可行的解决方案。
好的 - 所以我终于想通了。正如@gnur 所建议的那样,
xrdp
是要使用的东西,但不是开箱即用的。看来 Ubuntu 附带的 XRDP 是旧的(ish),所以:我做了一些额外的事情来让事情完全成型:
xmodmap
,所以如果你的键盘在 XRDP 会话中没有像你希望的那样工作,你必须: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
。这需要一段时间才能弄清楚。/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
,但这带来了另一个奇怪的地方 - 终端窗口中的选项卡完成不起作用。显然,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 开发等。非常好。