Как запустить удаленное окно firefox через SSH?

45

Когда я подключу SSH к удаленному ящику

$ ssh -X remotebox

затем запустите firefox в удаленном окне

remotebox$ firefox

, и у меня есть firefox, запущенный на моем локальном компьютере, откроется локальное окно firefox. в удаленном ящике не работает процесс firefox.

Если firefox не запущен на моем локальном компьютере, откроется окно удаленного Firefox.

Почему открывается локальное окно firefox? Как я могу предотвратить это?

Вот еще информация о моей локальной системе.

Linux lesmana-laptop 2.6.32-24-generic #42-Ubuntu SMP Fri Aug 20 14:24:04 UTC 2010 i686 GNU/Linux

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 10.04.1 LTS
Release:    10.04
Codename:   lucid

DISPLAY=:0.0

Mozilla Firefox 3.6.8, Copyright (c) 1998 - 2010 mozilla.org

Информация о удаленном блоке.

Linux dxray 2.6.22.19-0.4-default #1 SMP 2009-08-14 02:09:16 +0200 x86_64 x86_64 x86_64 GNU/Linux

LSB Version:    core-2.0-noarch:core-3.0-noarch:core-2.0-x86_64:core-3.0-x86_64:desktop-3.1-amd64:desktop-3.1-noarch:graphics-2.0-amd64:graphics-2.0-noarch:graphics-3.1-amd64:graphics-3.1-noarch
Distributor ID: SUSE LINUX
Description:    openSUSE 10.3 (X86-64)
Release:    10.3
Codename:   n/a

DISPLAY=localhost:15.0

Mozilla Firefox 3.0.14, Copyright (c) 1998 - 2009 mozilla.org

Следующая команда запускает удаленный сеанс firefox с удаленным окном firefox.

remotebox$ firefox -no-remote

Следующая команда производит кратковременную задержку, затем возвращается к приглашению и появляется локальное окно firefox. На удаленном ядре нет процесса firefox.

remotebox$ firefox

Информация о remotebox2.

Linux marvin 2.6.31-22-generic #60-Ubuntu SMP Thu May 27 00:22:23 UTC 2010 i686 GNU/Linux

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 9.10
Release:    9.10
Codename:   karmic

DISPLAY=localhost:11.0

Mozilla Firefox 3.6.8, Copyright (c) 1998 - 2010 mozilla.org

Следующая команда на remotebox2 запускает удаленный сеанс firefox, как ожидалось.

remotebox2$ firefox

Я не знаю, почему firefox на удаленном сервере2 запускает удаленный сеанс вместо локального сеанса.

    
задан lesmana 03.09.2010 в 05:56
источник

6 ответов

39

кроме firefox -no-remote другой параметр firefox -no-xshm , который показывает метод, используемый для его работы.

Общая память X11 - это технология межпроцессного обмена, которая может использоваться всеми приложениями, связанными с данным сеансом x сервера. Его можно использовать для выполнения drag & amp; drop и другие виды взаимодействия с рабочим столом.

Он может использоваться (и используется) также для реализации приложений «разомкнут один раз», чтобы уменьшить площадь (или количество окон).

Поскольку протокол X11 прозрачен в сети, «разделяемая память» распространяется также на удаленных клиентов X11.

    
ответ дан ithkuil 03.09.2010 в 17:40
источник
9

Попробуйте firefox -no-remote

    
ответ дан Dennis Williamson 03.09.2010 в 06:48
8

Заметьте, я купил копание, так как это меня било, и вы также можете добавить:

MOZ_NO_REMOTE=1
export MOZ_NO_REMOTE

в свой профиль.

    
ответ дан user2577 30.09.2010 в 15:31
4

Вы можете попробовать это, когда вы подключились к машине ( ssh [email protected] ; note: без опции -X), сначала введите следующую команду

export DISPLAY=:0 

это изменит отображение по умолчанию на экран текущего экрана рабочего стола. А затем просто введите

firefox

, чтобы firefox появился на рабочем столе. Убедитесь, что вы вошли в рабочий стол, без которого (без входа в систему) вы получите следующую ошибку;

firefox: cannot connect to X server :0

Этот метод будет работать и для заблокированных рабочих столов. Убедитесь, что вы вошли на рабочий стол и оболочку ssh с именем same .

Когда есть несколько сеансов рабочего стола, каждый сеанс идентифицируется другим числом как :0 , :1 , :2 и т. д.

    
ответ дан josip b 11.10.2015 в 18:58
1

Ни один из других решений не работал для меня, так что это было после небольшого поиска на других сайтах.

Вам нужно запустить firefox в отдельном процессе так же, как если бы вы делали все это на локальной машине. С помощью диспетчера профилей создайте новый профиль следующим образом.

export MOZ_NO_REMOTE=1
firefox -ProfileManager

Чтобы все было согласовано, я решил назвать каждый новый профиль на внешней машине таким же, как имя хоста.

    
ответ дан verayth 24.01.2017 в 22:51
0

Я просто добавлю, что сработало для меня. Просто используя firefox -no-remote не удалось с обычной ошибкой

Error: GDK_BACKEND does not match available displays

Однако работало следующее:

ssh -Y [email protected]
firefox -no-remote

Параметр -Y включает надежную пересылку X11. Надежные пересылки X11 не подвергаются элементам управления расширения X11 SECURITY. Вы можете рассмотреть возможность добавления опции -C в команду ssh для включения сжатия.

    
ответ дан rahul1210 26.03.2017 в 21:38