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-run
、startx
仮想端末から実行されたと思わせます。
答え2
ログイン マネージャー ( などlightdm
) を追加して、自動ログインを設定できます。x11vnc
ユーザー セッションの開始時に実行することもできます。
あるいは、vncserver
ユーザーとして実行し、SSH 転送を介して直接接続することもできます。
ssh -L5904:localhost:5905 [email protected]
vncserver :5 # only if the server has not been started
そして、クライアント上で以下を実行できます。
xvncviewer localhost:4