web-dev-qa-db-ja.com

Ubuntu14.04で動作するリモートデスクトップサーバーを取得する

OK-これは私が過去に何度も働いたことがあるものです-ログインハンドラーを含む素敵で光沢のあるセッションを提供するXDMCP対応のXサーバー。

私が持っているもの:

  • ESXiで実行されている仮想Ubuntuマシン-このマシンをWindowsターミナルサーバーのようにしたいと思います。
  • x11vncを介したVNCセットアップの動作-これは、セッションが実行されている場合は問題ありませんが、ログインして新しいセッションを作成する場合は問題ありません。また、マルチユーザーボックスではかなり面倒です
  • lightdmgdmを使った多くの実験で、XDMCP機能を稼働させようとしています。 /etc/lightdm/lightdm.conf/etc/gdm/*の編集はある程度機能しています。 lightdmを介してログインマネージャーを実行できますが、ログインすると、ユーザーはハングしたままになり、セッションを再生できなくなります。

lightdm(私が今いる場所)では、私のlightdm.confには次のようになっています。

[SeatDefaults]
allow-guest=false
[XDMCPServer]
enabled=true
port=177

ここに私が得ていないことがいくつかあると思います-これは私がいくつかの本当に素晴らしい答えが欲しいところです:

  • XDMCPは、古くて灰色ですが、(SSH経由かどうかに関係なく)まだ存続しています。代わりに使用する必要があることを知らない新しいもの(新しいプロトコルなど)はありますか?

  • この種のもののユーザーベースは縮小していますか?別の戦略を採用する必要がありますか?私はターミナルサーバーが好きなので、本当にしたくありません。

そして-これはもちろん私が本当に探している答えです:

  • gdmまたはlightdm構成ファイルの正確な場所を誰かに教えてもらえますか?それ以外の場合は完全にデフォルトのUbuntu 14.04.2デスクトップ版(64ビット)で変更する必要がありますか?

LTSPのようなプロジェクトがあることはわかっていますが、クライアントにUbuntuセットアップなどを起動させたくないので、これは私が望んでいることではありません。クライアントは、使用しているのと同じようにログインできる必要があります。 Windowsセッションを開始するためのリモートデスクトップ。私はこの時点で本当に非常に落胆していると感じています-10年前にこれは非常にスムーズに機能していましたが、今では実用的な解決策は完全に私を逃しています。

2
MrMajestyk

OK-それで私はついにそれを理解しました。 @gnurが示唆しているように、xrdpは使用するものですが、すぐに使用できるわけではありません。 Ubuntuに付属しているXRDPは古い(っぽい)ようです。

  • XRDPはソースからビルドする必要があります。ソースを取得する ここ そして非常に素晴らしいマニュアル ここ に従って、物事を合理的に機能する順序で取得します。これがないと、セッションの再接続は機能しません。これはちょっとしたショーストッパーです。

私は物事を完全に形にするためにいくつかの追加を行いました:

  • XRDPは、他のXがxmodmapで行うようには機能しないため、XRDPセッションでキーボードが期待どおりに機能しない場合は、次のことを行う必要があります。
    • 実際のコンソールセッションにログオンし(つまり、XRDP経由ではなく、ESXiコンソール経由または物理的に)、そのセッションのキーボードレイアウトに合わせて調整します。 setxkbmap -model pc104 -layout <your-layout>(私の場合はdk)を試してください
    • 次に、作業レイアウトをXRDPがロードできる.iniファイルにダンプします。これを行う: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重要な部分はlibdelay_msです。遅滞なく、ログイン後にデスクトップが表示されません。 XRDPセッションに。基盤となるVNCセッションの準備には少し時間がかかるようです。接続の試行が早すぎると、何も得られません。
  • ~/.xsessionファイルに適切なものを入れてください。 xfce4-sessionがありますが、これには別の奇妙な点があります。ターミナルウィンドウでのタブ補完が機能しませんでした。どうやら、XFCEはウィンドウの切り替えにタブキーを使用しているようです。これを修正するには、(GUIもあるかもしれませんが)~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xmlを編集し、説明されている修正を適用する必要があります ここ

それだ!これを実行すると、ユーザーがUbuntuセッションをWindowsセッションと同じように扱うことができるXDMCPの非常に優れた代替品ができました。私が欲しかったように:-)

[〜#〜] edit [〜#〜]これをしばらく使用して、解決策は実行可能であるが、それほど安定していないことがわかりました。ときどき、セッションの再接続が機能せず、ユーザーは不安定な状態のままになり、まったくログオンできなくなります。サービスを再起動するとこれは修正されますが、実際にはうまくいきません。

だから-私は実用的な解決策をもう少し探しました-そしてそれを見つけました!私の新しい親友は x2go です。これは、いくつかのOSフレーバーで提供される特別なクライアントパッケージを備えたスタンドアロンのXサーバーです。

編集2:OK-これについてはさらに詳しく説明します。 X2goは非常に優れていますが、Windowsクライアントには、キーベースのSSHログインでの動作がほとんど妨げられるという癖があるため、デスクトップホストで通常のPWログインを有効にする必要がありました。最適ではありませんが、X2goが他のすべての点で本当にうまく機能するという事実は変わりません。

編集3:Scaryglidersには、この時点で非常に優れたスクリプトがあり、光沢のあるRDPセッションのセットアップに必要なすべてのものを取得、コンパイル、およびインストールします。私が見つけた他のものの必要性をほとんど排除します。スクリプトを取得します ここ クローンを作成します。次に、X11rdp-o-matic.sh --justdoitを実行します。これで、5人のユーザーにサービスを提供するデスクトップホストができました。すべてPython開発などを行っています。とてもいいです。

2
MrMajestyk