web-dev-qa-db-ja.com

転送サポートなしで、レンタルしたホストでssh経由でX11を転送できますか?

レンタルしたUbuntuホストで実行するために必要なすべてのライブラリを備えたGUIプログラムがありますが、ホスト自体が-Xを使用したssh接続中にX転送を設定する試みを拒否します。 straceは、UIプログラムを実行できることを示していますが、DISPLAYがない場合は停止します。レンタルしたホストへのルートアクセス権がありません。通常のユーザー向けにX11を転送するように構成されていません。また、ホストのサポートによると、ユーザー向けの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は機能しません)、これを手動で構成する方法はありますか?ホストには、同じdistバージョンのUbuntuホストからコピーしたxauthとxhostがあります。

〜/ .ssh/rcは接続中に実行されますが、引数は渡されません。

ホストに存在しない/ usr/bin/xauthへの参照が問題であると思われますか?自分のsshdを実行して、正しいxauthパスで構成できますか?

3
simpleuser

さまざまなガイドに従って、ファイル/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システムから同じディレクトリにコピーする必要もありました。これは、実行しようとしたXプログラムでlddを実行し、未解決のライブラリを探して、ldconfig -p | fgrep libxkbfile.so.1を使用して作業システムで見つけ、scpを使用してターゲットシステムにコピーすることで判断しました。 。それから私は設定しました

set LD_LIBRARY_PATH=/path/to/directory

追加のライブラリを見つけて、Xプログラムを実行し、ローカルシステムでUIを表示できるようにしました。

1
simpleuser