SSH(-Xオプションを使用)を介して別のコンピュータに接続してからchrootしました。
その後、X11アプリケーションの実行に問題があります。
たとえば、sshの後にemacsを実行すると、X11アプリケーションで新しいウィンドウが開きます。 chrootとsshingを実行した後、emacsがコンソールアプリケーションとして実行されていることがわかります。
EmacsはX11アプリケーションまたはコンソールアプリケーションとして実行できるため、エラーは発生しませんが、他のGUIアプリケーションではエラーが発生します。
"cannot open display: localhost:10.0"
PS:$ DISPLAY確認を提案したい人を防ぐために正しく設定されています。
問題を特定できるかどうかを確認できるログがあるかどうか疑問に思います。
答え1
他の回答で言及されている.Xauthorityファイルに加えて、chrootにはXソケットが必要です。 ssh -X
Xは抽象ソケットを介して渡されず、パスを持つUNIXソケットを介してのみ渡されます。 chrootが/tmp/.X11-unix
バインドマウントされていない場合、chrootのプログラムはXサーバーに接続できません。
答え2
SuperUserで次のタイトルの投稿を確認してください。X11転送が有効になっているSSHの後にXプログラムを開くときに「ディスプレイを開けません」エラーをどのように解決しますか?
SSHを接続する最初のアカウントを使用してSSHを接続できると仮定すると、問題はそれとは何の関係もありません。
# /etc/ssh/sshd_config
X11Forwarding yes
ルートが変更されたため、ローカル側から.XAuthorityファイルにアクセスできなくなりました。このファイルは、Xアプリケーションのリモート表示を管理するために必要です。
よりxauthそしてMKX認証詳しくはマニュアルページをご覧ください。
また、X$HOME/.Xauthority
とMITマジッククッキーメカニズムは機能し、次のような良い入門書があります。.X 権限の欠如、動作方法について説明します。
答え3
最近同じ問題に直面しましたが、これが私に役立ちました。
ssh -Y -C userontheserver@server
cp ~/.Xauthority /chrootdir/home/userinchroot/.Xauthority
chroot /chrootdir
chrootの使用方法によっては、調整する必要があります(例:バインディング/dev
、proc
...)