リモートで実行されているLinuxアプリケーションを「インポート」(つまり、ローカルに描画)するのは非常に簡単です。ssh -Y
リモートシステムに移動してアプリケーションを実行すると、そのアプリケーションはローカルデスクトップに確実に表示されます。
ただし、su
リモートコンピュータの他のユーザーにSSH経由で接続すると、Xアプリケーションをローカルコンピュータに渡すことはできません。それは言うwrong authentication
。
このイベントをどのように処理するのかわかりません。これはまだecho $DISPLAY
本当ですが(ssh -Y
初期ログインによって設定されます)、セッションCookieはsshにログインしている初期ユーザーに対してのみ設定できます。
この問題をどのように克服し、他のユーザーが実行している他のXアプリケーションに渡すことができますか?
私が直接sshを使用しない理由は、そのユーザーにsshを送信したくないからです(サーバーでsshを試みるボットの簡単なターゲットである「virtualbox」ユーザーです)...
ベストアンサー1
X11転送が有効になっている削除済みシステムにsshを接続すると、サーバーのsshはユーザー.Xauthority
のホームディレクトリにファイルを作成します。 sshはTCPソケットからX11を受信するので、誰でも接続できます。誰でも接続できるため、他の人がモニターを使用できないようにする方法が必要です。このファイルを使用して行われます.Xauthority
。このファイルには、クライアントの接続が許可されていることを確認するためにX11サーバーに提供される「cookie」が含まれています。
すべての詳細をスキップし、ファイルをターゲット.Xauthority
ユーザーのホームディレクトリにコピーして所有権を付与すると、リンクできます。