サポートを渡さずにレンタルホストからSSH経由でX11を配信できますか?

サポートを渡さずにレンタルホストからSSH経由でX11を配信できますか?

リースされたUbuntuホストで実行するために必要なすべてのライブラリを含むGUIプログラムがありますが、ホスト自体はSSH接続中に-Xを使用してX転送を設定しようとしません。straceディスプレイUIプログラムは実行できますが、DISPLAYなしで停止します。リースされたホストへのrootアクセス権がなく、通常のユーザーのためにX11を転送するように構成されておらず、ホストサポートはユーザーをサポートしていないと言います。

コアプログラムが1つだけ必要ですが、X転送を行う方法はありますか?ssh -X -v見てください:

OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016
...
debug1: Remote: /usr/home/ipdb/.ssh/authorized_keys:2: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
debug2: x11_get_proto: /usr/bin/xauth  list unix:10.0 2>/dev/null
debug1: Requesting X11 forwarding with authentication spoofing.
debug2: channel 0: request x11-req confirm 1
...
X11 forwarding request failed on channel 0

ローカルホストとリモートホストの両方がファイアウォールの背後にあることを考慮して(したがってDISPLAY = $ REMOTEHOST:0は機能しません)、これを手動で設定する方法はありますか?このホストには、Ubuntuホストの同じdistバージョンからコピーしたxauthとxhostがあります。

~/.ssh/rc は接続中に実行されますが、パラメーターは渡されません。

/usr/bin/xauthへの参照がホストに存在しないようです。これは問題ですか?独自のSSHDを実行し、正しいxauthパスで設定できますか?

答え1

さまざまなガイドに従ってファイルを/etc/ssh/sshd_config新しいディレクトリにコピーし、同じディレクトリで次のコマンドを実行して新しいキーペアを作成しました。

ssh-keygen -f myrsa -N ''

同様のLinuxシステムからxauth実行可能ファイルをコピーして同じディレクトリに配置しました。

その後、sshd_configファイルを次の行に変更しました。

Port 22220

HostKey /path/to/directory/myrsa

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
XAuthLocation /path/to/directory/xauth

これで、次のコマンドを使用してポート22220でX転送が有効になっているSSHサーバーを起動できます。

/usr/sbin/sshd -d -D -f /path/to/directory/sshd_config

sshコマンドを使用して接続します。

ssh -X -p 22220 <hostname>

接続後に環境変数DISPLAYが設定されていることを確認してください。

そのホストでXプログラムを実行するには、いくつかのライブラリファイル(libxkbfile.so.1など)をXサポートがインストールされている同じLinuxシステムの同じディレクトリにコピーする必要がありました。以下をldd実行してこれを実行しました。これを確認するプログラム、未解決のライブラリを見つけて、作業システムでそのライブラリを見つけ、ldconfig -p | fgrep libxkbfile.so.1scpを使用してターゲットシステムにコピーしました。それから設定しました。

set LD_LIBRARY_PATH=/path/to/directory

これにより、別のライブラリを見つけてXプログラムを実行し、ローカルシステムでUIを表示できます。

関連情報