GNU/Linux >> Linux の 問題 >  >> Linux

Ssh – X11転送の試行が「connect/tmp/.x11-unix/x0:No such file or Directory」で失敗するのはなぜですか?

ローカルマシンで、次のコマンドを実行します:

ssh -X [email protected]

(完全を期すために、-Yを使用して以下のすべてをテストしましたが、同じ結果が得られました。)

予想どおり、これはremotemachine.comに正常にアクセスし、すべて正常に表示されます。ただし、xcalcを実行しようとすると、次のようになります。

 connect /tmp/.X11-unix/X0: No such file or directory
 Error: Can't open display: localhost:10.0

しかし、

$ ls -la /tmp/.X11-unix/
total 36
drwxrwxrwt 2 root root  4096 2012-11-23 09:29 .
drwxrwxrwt 8 root root 32768 2012-11-29 08:22 ..
srwxrwxrwx 1 root root     0 2012-11-23 09:29 X0

したがって、/tmp/.X11-unix/X0が存在するだけでなく、ユニバーサルr / w / x権限があります!

以前は問題なくx転送を使用していましたが、しばらくはありませんでした…

参照用のサーバー上のuname-a:

Linux machinename 2.6.32-25-generic #45-Ubuntu SMP Sat Oct 16 19:52:42 UTC 2010 x86_64 GNU/Linux

ウェブ上で数時間検索してきましたが、成功しませんでした。同じ問題に関する他の言及がありますが、解決策はありません。

承認された回答:

Xサーバーを実行していて、DISPLAYがある場合 環境変数は:0に設定されています 、これは、Linuxで一般的に/tmp/.X11-unix/X0にあるunixドメインソケットを使用してXサーバーに接続するようにアプリケーションに指示します。 (ただし、抽象的な名前空間については以下を参照してください。 最近のLinuxの場合)。

マシンにSSHで接続する場合リモートマシンsshd リモートマシン DISPLAYをlocalhost:10に設定します (たとえば)。これは、X接続がTCPを介してマシンlocalhostのポート6010に対して行われることを意味します。 リモートマシンのsshd そこで接続をリッスンし、着信接続をsshクライアントに転送します。次に、sshクライアントは/tmp/.X11-unix/X0への接続を試みます。 (リモートではなくローカル側で)Xサーバーに接続します。

Xサーバーが実行されていないか(Macを使用していますか?)、UNIXドメインソケットが/tmp/.X11-unixに見つからない可能性があります。これは、コンパイル時にsshが正しく構成されていないことを意味します。時間。

UNIXソケットの適切なパスを把握するには、strace -e connect xlogoを試してください。 (またはシステム上の同等の機能)ローカルマシンで、通常のXアプリケーションの機能を確認します。

netstat -x | grep X 手がかりを与えることもあります。

ちなみに、ここのLinux Debian wheezyマシンでは、Xorgは両方の/tmp/.X11-unix/X0をリッスンします。 ファイルシステムと/tmp/.X11-unix/X0 抽象的な名前空間 (一般的に@/tmp/.X11-unix/X0と書かれています )。 straceから 、X11アプリケーションは、デフォルトでその抽象名前空間を使用するようになりました。これは、/tmp/.X11-unixの場合でもそれらが機能する理由を説明しています。 sshが削除されている間、 その抽象的な名前空間を使用しません。

関連:Androidデバイスでsshサーバーを実行する方法は?
Linux
  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. Bash =〜正規表現とHttps://regex101.com/?

  3. CentOS / RHEL 7 で systemd-tmpfiles が /tmp/ または /var/tmp (tmpwatch の置き換え) をクリーンアップする方法

  1. UNIX / Linux :/tmp および /var/tmp ディレクトリの正しい権限は何ですか

  2. find -exec mv {} ./target/ + が機能しないのはなぜですか?

  3. バイナリを /bin、/sbin、/usr/bin、および /usr/sbin にインストールし、 --prefix および DESTDIR と対話します

  1. /dev/shm/ と /tmp/ はいつ使用する必要がありますか?

  2. unix:///var/run/supervisor.sock そのようなファイルはありません

  3. /tmp と /run の違いは何ですか?