レンタルした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パスで構成できますか?
さまざまなガイドに従って、ファイル/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を表示できるようにしました。