`-X`なしで` ssh`をマシンに追加した後、 `ssh -X`のように動作するように` $ DISPLAY`を変更することは可能ですか?


22

sshのない-Xマシンに、それは(例えば、いくつかの設定を変更することが可能である$DISPLAYことは以下のように動作させるために)ssh -X?そうでない場合、その理由は何ですか?ありがとう。


質問タイトルを省略することで短くすることを提案しchange $DISPLAY toます。現在の質問のタイトルを検索結果に完全に表示することはできません。また、$ DISPLAYの変更は、実際には質問の一部ではなく回答の一部です。
ドミトリーグリゴリエフ

回答:


33

X11転送を有効にして2番目の接続を作成DISPLAYし、最初の2番目の接続から環境変数を使用することもできます。

最初のウィンドウで:

$ ssh user@host
user@host$ ...

2番目のウィンドウで:

$ ssh -Y user@host 'echo $DISPLAY; while sleep 3600; do :; done'
localhost:10.0

最初のウィンドウに戻る:

user@host$ export DISPLAY=localhost:10.0
user@host$ xterm

残念ながら、ssh開始したプロセス/セッションまたはリモートマシン上で実行するユーザーへのX11(またはその他の)転送を含めることは何もしません(たとえば、資格情報をチェックする/アウトするUnixソケットを使用する、または名前空間を使用する)。これらの転送は、リモートマシン上の誰でも接続できる単純なTCPリッスンソケットです。X11転送のすべてのセキュリティはX11認証に依存しています。

手でX11転送

sshd_config(5)manページには言及していること:

X11転送を無効にしても、ユーザーは常に独自のフォワーダーをインストールできるため、ユーザーがX11トラフィックを転送することを妨げません。

これを手動で行う方法を次に示します。

まず、x11認証メカニズムをバイパスするホストベースまたはユーザーベースのアクセス制御を必ず無効にしてください[1]:

$ xhost $(xhost | sed -n /:/s/^/-/p)
access control enabled, only authorized clients can connect

次にDISPLAY=:0、ローカルマシンの認証情報を表示します。

$ xauth list :0
ohzd/unix:0  MIT-MAGIC-COOKIE-1  a86982ddce0c1e1c1a8c5e8b2846e43b

X11転送なしでリモートマシンに接続します。

$ ssh user@hzy64
user@hzy64's password:
[motd snipped]

経由~Cでコマンドラインを開き、ポート6000+43からディスプレイに対応するUNIXソケットにリモート転送を追加します:0

hzy64$~C
ssh> -R 6043:/tmp/.X11-unix/X0
Forwarding port.

$DISPLAYenvvarを設定し、ローカルからリモートマシンに認証情報を追加します。

hzy64$ export DISPLAY=localhost:43
hzy64$ xauth add $DISPLAY . a86982ddce0c1e1c1a8c5e8b2846e43b
xauth:  file /home/user/.Xauthority does not exist

これで準備完了です。

hzy64$ xterm

[1] バグ修正が誤っているため、Debianではデフォルトでユーザーベースのアクセス制御が有効になっています/etc/X11/Xsession.d/35x11-common_xhost-local。さらに悪いことに、XWaylandでデフォルトで使用できるのは、これもオフにできないものだけです。X11プロトコルのプロキシ(例xscope:)は、X11サーバーに大きな穴を開ける場合を除き、独自のx11認証Cookieチェック(sshの方法)を実行する必要があります。


1
セキュリティに-X関心-Yがあるなら、に比べてわずかに優れているでしょう。
スティーブンキット

13
多くの(ほとんど?)X11プログラムはで動作せず-X、でのみ動作し-Yます。多くのシステム(例:debian)ではデフォルトでForwardX11Trusted設定さyesれて-Xおり、-Yオプションとオプションは同等であるため、人々は気づきません;-)
mosvy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.