Соединение переадресации PuTTY, CygwinX и X11 отклонено

10

Я больше не могу пересылать X11, используя KiTTY / PuTTY, в CygwinX.

Я подключаюсь к машине Ubuntu Server 14.10, которая правильно настроена для пересылки X11. Я могу инициировать пересылку X11, используя Cygwin xterm и с других машин Linux.

Я использую CygwinX [1.7.34 (0.285 / 5/3)] и KiTTY 0.64.0.1 (вилка PuTTY, я также пробовал PuTTY) на Win7.

Я проверил свою переменную отображения и попытался отключить контроль доступа xhost в Cygwin xterm.

$ echo $DISPLAY
:1

$ xhost +
access control disabled, clients can connect from any host

Мой KiTTY / PuTTY настроен для включения переадресации X11 и установлен правильный дисплей. Я пробовал: 1 и: 1,0.

Скриншот KiTTY X11 Config

Когда я SSH к серверу, моя переменная DISPLAY установлена ​​и xauth обновляется. Я удалил свой .Xauthority и заново создал его для проверки.

user@server:~$ echo $DISPLAY
localhost:10.0
user@server:~$ xauth list
server/unix:10  MIT-MAGIC-COOKIE-1  3983b2d7f3d5f9f66d9796997771bf82

Когда я пытаюсь запустить приложение X11, я получаю следующую ошибку.

user@server:~$ xterm
KiTTY X11 proxy: unable to connect to forwarded X server: Network error: Connection refused
xterm: Xt error: Can't open display: localhost:10.0

XWin.exe прослушивает порт 34576, если это имеет значение.

[XWin.exe]
 TCP    127.0.0.1:34576        0.0.0.0:0              LISTENING

Я полагаю, что существует проблема с программным обеспечением или конфигурацией, которую мне не хватает, поскольку я вижу это на нескольких серверах и клиентских компьютерах. Любая помощь будет оценена.

SeeJayEmm
источник
$DISPLAYНа удаленной машине должен указывать адрес вашего рабочего стола, а не localhost.
lcd047
2
@ lcd047 Нет, сейчас. $DISPLAYна удаленной машине должен указывать на localhost. SSH выполняет пересылку.
Жиль "ТАК - перестань быть злым"
Я установил 32-битный Cygwin, чтобы исключить Cygwin64 как переменную. Без изменений. При получении соединения отказано в ошибке.
SeeJayEmm
@Gilles: Я пытался подчеркнуть то, что, поскольку $DISPLAY на удаленной машине не указан рабочий стол OP, пересылка X11 не произошла . В противном случае $DISPLAYна удаленной машине может даже не существовать, если на удаленной машине не запущен сам X-сервер (который в любом случае не имеет ничего общего с первоначальным вопросом).
lcd047
3
@ lcd047 Нет. Пожалуйста, проверьте ваши факты. Если происходит пересылка X11, то DISPLAYуказывает на localhost. SSH прослушивает порт TCP на удаленной машине и пересылает пакеты. Если DISPLAYуказать на локальный компьютер, это будет означать, что он не пересылается через SSH, а через прямое TCP-соединение - в виде открытого текста и, возможно, на IP-адрес, который даже не имеет маршрута.
Жиль "ТАК - перестань быть злым"

Ответы:

9

Хорошо, я разобрался с решением своей проблемы.

По умолчанию CygwinX больше не прослушивает tcp-соединения (Cyg SSH использует Unix-сокеты для подключения). Чтобы включить tcp соединения, в параметры командной строки необходимо добавить «-listen tcp». В моем случае я изменил значок «Сервер XWin» на:

C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/startxwin -- -multiwindow -listen tcp"
SeeJayEmm
источник
Это прекрасно работает для меня, спасибо! Но как мне избежать необходимости xhost +localhost(или более безопасного решения) в локальном терминале Cygwin при каждом запуске X-сервера?
chappjc
1
Ну, я добавил xhost +localhostв startxwinправом ближе к концу файла, внутри последнего условный:xhost +localhost fi exit $retval
chappjc
что насчет замазки?
Брайан Томас
@BrianThomas Вы можете уточнить свой вопрос? А как насчет PuTTY? Конфигурация PuTTY в моем исходном сообщении была действительной. Проблема была с CygwinX.
SeeJayEmm
Ну, я имел в виду заголовок «Замазка не соединяется», ответ за Cygwin, а не за замазку, но в OP я вижу экран замазки. Во всяком случае, я понял это. Что касается шпатлевки, решение моей проблемы состояло в том, чтобы убедиться, что только один Xserver (XMing в моем случае) был запущен, и что в журнале при запуске не было ошибок, и обязательно указать, что отображение :10работает для меня. (хорошо, я могу видеть, как это не относится к вашему ответу, поскольку ваш первоначальный ОП, однако, здесь есть и другие люди, эта проблема может быть довольно широкой. Поэтому, надеюсь, это поможет другим.)
Брайан Томас,
0

У меня была эта проблема. Потому что X-Win не работал. Если вы хотите, чтобы X-Win запускался при запуске, перейдите в «run», затем «shell: startup» и скопируйте ярлык x-win в эту папку.

Тим Моттрам
источник
0

В моем случае ошибка была похожа на "putty x11 connection отказался". Я входил через Windows-машину на сервер Ubuntu 16 через putty (с включенной пересылкой x11).

Перепробовал множество вещей от повторного создания файлов .Xauthority до добавления волшебного cookie в список xauth. Однако проблема заключалась в том, что сервер Xming не работал на моей машине с Windows. Как только я запустил Xming на хост-машине (windows), на которой я порождаю замазку, вход в систему через замазку работал как чудо.

Nishank
источник