Putty-> Cygwin X11転送「ディスプレイを開けません」エラー


11

WindowsマシンでPuttyを使用して、別のサーバーにSSH接続します。そこに到着したら、X11転送を使用してウィンドウをコンピューターにポップしようとしています。リモートシステムは、他の多くのユーザーが同じ方法で正常に使用できる大規模なシステムであるため、問題にはなりません。

問題なくPutty経由でシステムにログインし、startxwincygwinで実行します。しかし、xtermPuttyで実行するとxterm Xt error: Can't open display: localhost:##.0、ポンド記号が2つの整数であり、ログインするたびに値が変化するというエラーが表示されます。

  • Putty設定でX11転送を有効にしています
  • 「X表示位置」を localhost:0
  • cygwinのX11パッケージをダウンロードすることを確認しました
  • startx代わりに使用してみましたstartxwin
  • 私が試してみましたsetenv DISPLAY localhost:0し、setenv DISPLAY my.ip.address

残念ながら、問題は解決しません。このトピックに関するグーグルリソースを使い果たしたので、どんな助けにも感謝します。ありがとう!


localhost:##.0ここには実際に何が表示されていますか?WindowsコンピューターでどのようなXソフトウェアを実行していますか?
ケンスター2015

回答:


11

最近のCygwinの更新により、デフォルトでTCP接続をリッスンしないようにXサーバーが変更されました。代わりに、CygwinのXはUnixドメインソケット(のCygwin実装)を使用し、PuTTY(ネイティブWindowsプログラムとして)はこれらの使用方法を認識していません。

CygwinのXよくある質問Cygwinの メーリング リストは、より多くの詳細を持っています。

私の解決策は、startxwinを使用してXを起動する標準のCygwinショートカットを取ることでした。

C:\cygwin\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/startxwin"

そしてそれを私の希望するオプション(追加-listen tcpと削除-auth)でxinitを直接呼び出すことで置き換えます:

C:\cygwin\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/xinit /etc/X11/xinit/startxwinrc -- /usr/bin/XWin :0 -multiwindow -listen tcp"

これはCygwinの新しいデフォルトよりも安全性が低くなります。これはシングルユーザーシステムでのみ使用する必要があり、XWinへの接続をブロックするようにファイアウォールを構成するのが賢明です。


これを実行する場所?cygwinターミナル/ PS / CMD
yellowandred

1
@yellowandred `C:`で始まるため、CygwinターミナルではなくWindowsスタイルのパスです。Windowsショートカットの[ターゲット]セクションに配置するだけです。CMDは動作するはずです。PowerShellは機能するはずですが、見積もりを更新する必要がある場合があります。
ジョシュケリー

6

Josh Kelleyの発言の代わりに、startxwinファイルを編集して、「-listen tcp」をデフォルトのサーバー引数に追加することもできます。

旧:defaultserverargs = "-multiwindow"

新規:defaultserverargs = "-multiwindow -listen tcp"

また、認証を有効にして、startxwinスクリプトによって作成された認証ファイルをputtyにポイントする必要がありました。鉱山はここにありました:c:\ cygwin64 \ home \ USERNAME.Xauthority

このファイルは再作成されるため、xserverをリセットした後、パテセッションを再起動する必要があります。

セキュリティを確保するために、ローカルホストからの接続のみを許可することもできます。これは、パテが転送するためです。


4

「Xの表示場所」をlocalhost:0に設定してみました

代わりに「X表示場所」を「:0.0」に設定してみてください。

export DISPLAY=:0.0

Josh KelleyCygwin X FAQに言及しました:

3.13。アップグレードしたが、Xクライアントが接続できない

A1:

Xサーバー1.17以降、サーバーはデフォルトでTCP / IP接続をリッスンせず、UNIXドメインソケットでのローカル接続のみを受け入れます。

ローカルクライアントの場合、DISPLAY = localhost:0.0、DISPLAY = 127.0.0.1:0.0、DISPLAY = :: 1:0.0などではなく、DISPLAY =:0.0を使用します。



0

他の人が言ったように、トリックは-listen tcpサーバーの引数に追加することです。ただし、これを呼び出しstartxwin -- -listen tcpstartxwin、残りのxinitコマンドをビルドできるようにすることをお勧めします。

スタートメニューのショートカット:

C:\cygwin\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/startxwin -- -listen tcp"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.