web-dev-qa-db-ja.com

SSH X11転送-コピー、表示、および「@」記号に関する問題

ssh -X user@ipを使用してSSHサーバーに接続しています(LAN上で100mbit/s接続)。

それはうまく機能しますが、3つの問題があります。

  1. ウィンドウを閉じて別のウィンドウを開こうとすると、しばらくすると(正確にいつかはわかりませんが)、エラーが発生します:Error: Can't open display: localhost:10.0そしてこれを修正するにはログアウトしてから再度ログインする必要があります。

  2. @を入力できません。最初はロケールの問題だと思いましたが、ロケールは正しく生成されます。キーボードレイアウトも適切であり、!")$(_?のような他のものは機能します。

  3. PCに何かをコピーして、X11転送ウィンドウに貼り付けることはできますが、その逆はそれほど多くありません。 何かがコピーされます(クリップボードが上書きされます)が、貼り付けることはできません(一部のアプリに貼り付けようとすると、アプリが約1分間応答しなくなります)。

xauthをインストールしました(両方のマシン)。X11転送のデフォルト設定を使用します。サーバーはOpenSSH_7.9p1 Raspbian-10+deb10u2, OpenSSL 1.1.1d 10 Sep 2019 debian XFCE4、クライアントはArchGNOME3のOpenSSH_8.2p1, OpenSSL 1.1.1f 31 Mar 2020です。

xclip -oxsel -o -bを試しましたが、どちらも何も出力せず、CTRL+Cするまで実行されません。

PCに@をコピーして、サーバーアプリに貼り付けると機能します。

編集:

(DEキーボードレイアウト):クライアントとサーバーのxevは同じキーコードを示し、クライアントのXLookupStringはサーバーq(71)で@(40)を提供します。 Alt Grキーのイベント/コードは@のために押し続ける必要があり、他のすべては両方で同じです。 xmodmapは、両方でまったく同じ結果をもたらします。

Sshdログをチェックすると、確かに何かがわかりました:channel 3: open failed: administratively prohibited: open failed、これは明らかにかなりあいまいです。

サーバー:X.Org X Server 1.20.4
クライアント:X.Org X Server 1.20.8

冗長性は私に与えました:Rejected X11 connection after ForwardX11Timeout expired

そしてそれをネットで検索すると修正されました。 ForwardX11Timeoutを高い値に設定すると修正されました。無制限に設定するのは 明らかにまだ不可能です-Yの代わりに-Xを使用すると、明らかにこれも修正されますが、 安全性が低いようです configオプションよりも。

1
confetti

1)そのため、ネットワーク関連の何かが機能しなくなりました。疑わしいエラーメッセージがないか、リモートコンピューターのsshdログを確認します。何も見つからない場合は、sshクライアントとsshdサーバーの両方の詳細度を上げてください(その方法については、manページを参照してください)。

2)リモートXプログラムはローカルXサーバーに接続しますが、それでもいくつかのリモート設定を使用します。つまり、実際には「ロケール」ではなく、キーボードXの設定に関するものです。転送を介してxevを開始し、ローカルで@と入力するとどうなるかを確認します(これにロケールで使用する必要のあるキーの組み合わせが何であれ、教えてくれませんでした)。転送によるxmodmapも役立つ場合があります。

3)ここで何が起こるかわかりません。これには、Xプロトコルレベルでのデバッグが必要です。

また、ローカルコンピューターとリモートコンピューターの両方のXサーバーとライブラリのバージョンが適度に近いかどうかも確認してください。そうでない場合は、近づけてみてください。 Xワイヤープロトコルはかなり安定していますが、2つのホストがそこにある何かについて意見が一致しない場合は、問題を説明できる可能性があります。

sshバージョンはそれほど重要ではありません。sshはXプロトコルを透過的に転送しているだけです。

1
dirkt