X-сессия в Git Bash в Windows?

Я использую Git Bash в Windows. Я использовал Git Bash для SSH на машине UNIX и попытался запустить программу с графическим интерфейсом. Я получил сообщение: LINUX/UNIX system detected, but unable to access X11 display.

У меня X-Win 32 (коммерческая). Я также использовал Xming, который похож на бесплатную версию X-Win 32, но имеет проблемы с определенной графикой.

Есть ли способ заставить эту удаленную систему получить доступ к моему дисплею X11 через X-Win 32 или Xming или любым другим способом?

Я просто хотел бы запускать такие программы, как MATLAB, с всплывающим графическим интерфейсом, с машин UNIX, когда SSH подключен к этой машине через Git Bash в Windows.

У меня также установлены PuTTY и Secure Shell Client, но я бы предпочел работать исключительно с Git Bash, потому что для подключения по ssh к другим машинам требуется меньше кнопок.

Если невозможно заставить это работать на Git Bash, я бы хотел, чтобы он работал с PuTTY (клиент Secure Shell хорош, но навсегда прекратил обновления).


person user1271772    schedule 12.04.2012    source источник
comment
Две вещи: 1. Вам нужно отключить контроль доступа в Xming (поэтому -ac) [не рекомендуется] и 2. Вам нужно настроить DISPLAY так, чтобы он указывал на IP-адрес, на котором работает Xming при попытке подключения.   -  person Stanislav    schedule 22.05.2017


Ответы (6)


Этот вопрос довольно старый, но в любом случае... Я (наконец-то...) смог заставить его работать, используя команду ssh из Git for Windows и XMing. Все, что мне нужно было сделать, это установить для переменной окружения DISPLAY значение localhost:0.0 (было установлено только значение :0.0).

person Stefan Näwe    schedule 21.01.2013
comment
Как вы редактируете переменные среды в Git Bash? Или ты делал это по ssh? Спасибо - person Anon343224user; 19.09.2013
comment
Поместите export DISPLAY=localhost:0.0 в свой $HOME/.bashrc. - person Stefan Näwe; 20.09.2013
comment
Я добавил это через системные переменные среды для окон, и у меня это отлично работает. - person Paul Nelson Baker; 04.02.2014
comment
Это сработало для меня, но мне также пришлось удалить ~/.Xauthority на моем удаленном хосте. - person pagliuca; 03.09.2015
comment
было ли это дополнение на стороне клиента SSH или на стороне сервера? И это было в переменной $DISPLAY на стороне клиента? - person FilBot3; 23.12.2015
comment
Перед запуском ssh -Y some-server необходимо установить переменную DISPLAY на стороне client. - person GLRoman; 21.04.2021

Альтернативой Xming является VcXsrv, созданный с использованием Visual Studio C++. Последняя версия Xming теперь требует пожертвования.

Наведите указатель мыши на значок X в строке состояния и узнайте, на каком порту он работает. Если это :0.0 (или :25.0), то в Git Bash: export DISPLAY=localhost:0.0 (или export DISPLAY=localhost:25.0). Вам также может понадобиться использовать -Y вместо -X для вашей команды ssh.

person P. B.    schedule 02.01.2016
comment
Я не знаю, откуда это требует пожертвования. Насколько я могу судить, вы просто скачаете его с SourceForge, установите и ты далеко. В Условиях на веб-сайте Xming указано, что выпуски SourceForge являются общественным достоянием. (Вы можете делать все, что хотите, с выпусками Public Domain, включая их свободное распространение; они по-прежнему сохраняют все оригинальные авторские лицензии надлежащим образом, но я отказался от своих прав на них.) - person Jon Green; 11.10.2019
comment
Последняя общедоступная версия выпущена в 2007 году. Проверьте здесь, чтобы узнать, где требуется пожертвование было использовано откуда. - person P. B.; 12.10.2019

Я смог сделать это с помощью шпатлевки и xming http://sourceforge.net/projects/xming/.

Просто запустите xming и включите переадресацию сеанса x в настройках шпатлевки.

person will stone    schedule 28.04.2012
comment
он также работает с git-bash и xming, по крайней мере, для xclock. просто нужно установить отображение на localhost... перед sshing. - person mulllhausen; 08.04.2016

Вы должны запустить X-сервер, прежде чем подключаться с помощью SSH. И когда вы подключаетесь к другому ящику, вам нужно будет включить переключатель -X с помощью SSH. Это сообщит SSH о пересылке вывода приложений X11 на ваш компьютер с Windows.

person boretom    schedule 12.04.2012
comment
Спасибо большое за Ваш ответ. Я попробовал: ssh -X [email protected], а затем xclock, и он сказал: «Не удается открыть дисплей». - person user1271772; 13.04.2012

Вы можете попробовать добавить переключатель -X к вашей команде ssh в git bash. Я не уверен, что это сработает. Однако это не тот метод, который я бы предложил. Вместо этого я бы посоветовал вам изучить пересылку X с помощью шпатлевки. Вы сможете найти множество руководств о том, как настроить это с помощью быстрого поиска.

person Hans Lawrenz    schedule 12.04.2012
comment
Спасибо большое за Ваш ответ. Я попробовал: ssh -X [email protected], а затем xclock, и он сказал ошибку: Can't open display . Я смог заставить xclock работать на том же сервере в PuTTY, перейдя в Connection->SSH->X11 и выбрав включить туннелирование X11 и установив местоположение отображения на 127.0.0.1:0 (т.е. моя собственная машина, на которой PuTTY работает). Спасибо за совет. Было бы идеально иметь возможность сделать это из Git Bash — почему вы не рекомендуете это? - person user1271772; 13.04.2012
comment
Я бы не рекомендовал это, потому что, насколько я понимаю, git bash существует только для того, чтобы дать вам удобную командную строку для git в Windows. Даже если бы вы могли заставить его работать, я сомневаюсь, что пересылка X находится на радаре разработчиков. - person Hans Lawrenz; 13.04.2012

Ваша проблема в том, что вам каким-то образом нужно перенести данные XAuthority на удаленный хост. Обычно SSH делает это за вас, но только если он запущен с правильными переменными среды. В основном вам нужно выяснить местоположение данных xauth и поместить этот путь в переменную среды XAUTHORITY. ДИСПЛЕЙ, скорее всего, ":0.0".

Я думаю, что самым простым решением было использование Cygwin и поставляемого им сервера X11, потому что его сценарий запуска X откроет xterm, из которого вы можете подключиться по SSH к удаленной машине.

person datenwolf    schedule 13.04.2012