How do I launch a remote firefox window via SSH?

194,961

Solution 1

besides firefox -no-remote another parameter is firefox -no-xshm which reveals the technique used to make it work.

X11 shared memory is an interprocess communication technique which can be used by all applications connected to a given x server session. It can be used to perform drag & drop, and other kind of desktop interaction.

It can be (and is) used also to implement "open once" applications, in order to reduce the footprint (or the number of windows).

Since the X11 protocol is network transparent the "shared memory" is extended also to remote X11 clients.

Solution 2

Try firefox -no-remote

Solution 3

Note, I did dome digging as this was bugging me and you can also just add:

MOZ_NO_REMOTE=1
export MOZ_NO_REMOTE

to your profile.

Solution 4

Simple remote browsing

If you'd like to browse the web locally as if you were sitting in front of a remote box:

$ ssh -X [email protected]

then run Firefox inside the remote terminal session:

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

Notice the usage of -X flag in the ssh command. You can also do both steps in a single go, like shown below:

$ ssh -X [email protected] firefox http://test-ipv6.com/

Tunnelling a remote IP:port

If you have an application running remotely which exposes some sort of web frontend, you will be interested on exposing the remote IP:port as if it is a local IP:port. In this case, the -L option defines a correspondence between localhost:localport and remotehost:remoteport, as shown in the pseudo command below:

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

For example:

$ ssh -L 127.0.0.1:18080:internal.example.com:8080 [email protected]

then run Firefox locally:

$ firefox http://127.0.0.1:18080

In the example above, you are connecting via SSH onto [email protected], and you are interested on a web frontend exposed at internal.example.com:8080. This remote IP:port will be exposed locally at 127.0.0.1:18080.

Solution 5

You can try this, when you connected to machine (ssh user@host; note: without -X option), first type the follow command

export DISPLAY=:0 

this would change the default display to that of the current desktop screen. And then just type

firefox

to have firefox spawned on the desktop window. Ensure that you have logged into the desktop, without which (no logins) you will get the following error;

firefox: cannot connect to X server :0

This method would work for locked desktops as well. Please ensure that you have logged in on the desktop and the ssh shell with the same username.

When there are multiple desktop sessions, each session is identified by a different number as :0, :1, :2, etc.

Share:
194,961
Lesmana
Author by

Lesmana

https://gitlab.com/lesmana https://github.com/lesmana

Updated on September 17, 2022

Comments

  • Lesmana
    Lesmana almost 2 years

    When I SSH to a remote box

    $ ssh -X remotebox
    

    then start firefox on the remote box

    remotebox$ firefox
    

    and I have firefox running on my local machine, a local firefox window will open. no firefox process is running on the remote box.

    If firefox is not running on my local machine then a remote firefox window will open.

    Why is it opening a local firefox window? How can i prevent that?


    Here some more information of my local system.

    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
    

    Information of remotebox.

    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
    

    The following command starts a remote firefox session with a remote firefox window.

    remotebox$ firefox -no-remote
    

    The following command produces a brief delay, then drops back to prompt and a local firefox window pops up. No firefox process running on the remotebox.

    remotebox$ firefox
    

    Information of 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
    

    The following command on remotebox2 starts a remote firefox session as expected.

    remotebox2$ firefox
    

    I do not know why firefox on remotebox2 starts a remote session instead of a local session.

  • Lesmana
    Lesmana almost 14 years
    this works in opening a remote firefox window. but i still do not understand why a remote command can trigger a local firefox window to open.
  • Michael Gundlach
    Michael Gundlach almost 14 years
    @lesmana this may be due to x11-forwarding - if that is setup in the sshd_config you may have a situation where it's being executed and tunneled back through.
  • Tomasz Orłowski
    Tomasz Orłowski over 9 years
    Is there any way I can make x not do this? I am looking to containerize a video game/wine setup for easy distribution, but this is causing me headaches, because it will cause unspecified behaviour depending on what the user of the container has installed and running. I am using this solution to do the x forwarding: stackoverflow.com/a/25168483 and would like to simply make sure the container never shares memory with the host.
  • Bob Ebert
    Bob Ebert over 8 years
    It doesn't work for me
  • Kieveli
    Kieveli over 7 years
    Try the lower suggestion: export MOZ_NO_REMOTE=1
  • answerSeeker
    answerSeeker almost 7 years
    That's the only answer that worked for me.