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

У каждого другого пользователя есть другой домашний каталог.

Все они настроены в файле /etc/passwd. Вы должны выйти и вернуться после редактирования этого файла, чтобы изменения в домашней папке вступили в силу. Если вы не являетесь продвинутым пользователем, я бы вообще не рекомендовал редактировать этот файл, но я упомянул об этом на случай, если вам будет интересно просмотреть его и узнать, как это работает.

Дом пользователя «root» напрямую устанавливается по умолчанию /root, тогда как обычные каталоги обычных пользователей по умолчанию устанавливаются на /home/*username*. Обычно нет никакой причины переместить домашний каталог.

При запуске графической программы с привилегиями root с помощью gksu / gksudo ваш домашний каталог обычно будет отображаться как /root (это объясняет, почему ). Это нормально, и только потому, что вы используете привилегии root (которые вам редко нужно использовать, если вы правильно настроили все).

1
задан 6 January 2015 в 15:25

6 ответов

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

10
ответ дан 26 May 2018 в 01:24
  • 1
    это работает при открытии удаленного окна firefox. но я до сих пор не понимаю, почему удаленная команда может вызвать локальное окно firefox для открытия. – lesmana 3 September 2010 в 11:53
  • 2
    @lesmana это может быть связано с x11-пересылкой - если это настройка в sshd_config, у вас может быть ситуация, когда она выполняется и туннелируется обратно. – Marco Ceppi♦ 4 September 2010 в 05:08

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

MOZ_NO_REMOTE=1
export MOZ_NO_REMOTE

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

9
ответ дан 26 May 2018 в 01:24

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

export DISPLAY=:0 

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

firefox

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

firefox: cannot connect to X server :0

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

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

4
ответ дан 26 May 2018 в 01:24
  • 1
    Это единственный ответ, который сработал для меня. – answerSeeker 10 July 2017 в 06:18

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

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

export MOZ_NO_REMOTE=1
firefox -ProfileManager

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

2
ответ дан 26 May 2018 в 01:24

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

Error: GDK_BACKEND does not match available displays

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

ssh -Y user@host
firefox -no-remote

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

0
ответ дан 26 May 2018 в 01:24

Простой удаленный просмотр

Если вы хотите просматривать веб-сайт локально, как если бы вы сидели перед удаленным ящиком:

$ ssh -X username@remote.example.com

, затем запустите Firefox внутри сеанс удаленного терминала:

$ firefox https://test-ipv6.com/

Обратите внимание на использование флага -X в команде ssh. Вы также можете выполнить оба действия за один раз, как показано ниже:

$ ssh -X username@remote.example.com firefox http://test-ipv6.com/

Туннелирование удаленного IP-порта

Если у вас есть приложение, запущенное удаленно, которое предоставляет какие-то веб-интерфейс, вам будет интересно разоблачить удаленный IP-порт, как если бы он был локальным IP-портом. В этом случае параметр -L определяет соответствие между localhost:localport и remotehost:remoteport, как показано в псевдо-команде ниже:

ssh -L localhost:localport:remotehost:remoteport remoteuser@remotehost

Например:

$ ssh -L 127.0.0.1:18080:internal.example.com:8080 username@router.example.com

, затем запустите Firefox в сеансе удаленного терминала :

$ firefox http://127.0.0.1:18080

В приведенном выше примере вы подключаетесь через SSH на username@router.example.com, и вас интересует веб-сайт внешний интерфейс, выставленный на internal.example.com:8080. Этот удаленный IP-порт будет отображаться локально на 127.0.0.1:18080.

0
ответ дан 26 May 2018 в 01:24

Другие вопросы по тегам:

Похожие вопросы: