SSH経由で非ルートユーザーとしてxを起動する

SSH経由で非ルートユーザーとしてxを起動する

Ubuntu 1804 を実行しているリモート VM があり、VNC を実行したいと考えています。X サーバーを実行する必要がある x11vnc を使用しています。現在は SSH 経由で接続しています。

VM には Nvidia カードが搭載されており、nvidia-xconfig を使用して xorg.conf を生成した後、startx を使用して X セッションを開始できますが、root としてのみ開始できます。その後の VNC 経由の接続はすべて root で行われるため、これを回避する必要があります。

xorg.conf ファイルの Device セクションは次のようになります。

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Tesla K80"
    BusID          "0:30:0"
EndSection

非ルートユーザーとして startx を起動しようとすると、次のメッセージが表示されます。

/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server

誰でも startx を実行できるように /etc/X11/Xwrapper.config を変更すると、次のようになります。

Couldn't get a file descriptor referring to the console

SSH 経由で接続しても、startx を実行する必要があるテキスト コンソールに接続されているわけではないと読みました。chvt でテキスト コンソールに変更しようとしても失敗し、何も変わりません。

SSH 経由で X を起動する方法はありますか?

答え1

ここは に基づくソリューションでありsystemd-runstartx仮想端末から実行されたと思わせます。

答え2

ログイン マネージャー ( などlightdm) を追加して、自動ログインを設定できます。x11vncユーザー セッションの開始時に実行することもできます。

あるいは、vncserverユーザーとして実行し、SSH 転送を介して直接接続することもできます。

ssh -L5904:localhost:5905 [email protected]
vncserver :5 # only if the server has not been started

そして、クライアント上で以下を実行できます。

xvncviewer localhost:4

関連情報