Como eu inicio uma janela remota do firefox via SSH?

49

Quando eu SSH para uma caixa remota

$ ssh -X remotebox

inicie o firefox na caixa remota

remotebox$ firefox

e eu tenho o firefox em execução na minha máquina local, uma janela local do firefox será aberta. nenhum processo do firefox está sendo executado na caixa remota.

Se o firefox não estiver sendo executado em minha máquina local, uma janela remota do Firefox será aberta.

Por que está abrindo uma janela local do firefox? Como posso evitar isso?

Mais algumas informações do meu sistema local.

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

Informação do 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

O seguinte comando inicia uma sessão remota do firefox com uma janela remota do firefox.

remotebox$ firefox -no-remote

O comando a seguir produz um breve atraso, depois retorna ao prompt e uma janela do firefox local é exibida. Nenhum processo do firefox sendo executado no remotebox.

remotebox$ firefox

Informação do 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

O seguinte comando no remotebox2 inicia uma sessão remota do firefox conforme o esperado.

remotebox2$ firefox

Eu não sei porque o firefox no remotebox2 inicia uma sessão remota em vez de uma sessão local.

    
por lesmana 03.09.2010 / 05:56

7 respostas

43

além de firefox -no-remote , outro parâmetro é firefox -no-xshm , o que revela a técnica usada para fazê-lo funcionar.

A memória compartilhada X11 é uma técnica de comunicação entre processos que pode ser usada por todos os aplicativos conectados a uma determinada sessão do servidor x. Pode ser usado para executar arrastar & amp; drop, e outro tipo de interação desktop.

Ele pode ser (e é) usado também para implementar aplicativos "abertos uma vez", a fim de reduzir a área ocupada (ou o número de janelas).

Como o protocolo X11 é transparente à rede, a "memória compartilhada" é estendida também aos clientes X11 remotos.

    
por ithkuil 03.09.2010 / 17:40
10

Experimente firefox -no-remote

    
por Dennis Williamson 03.09.2010 / 06:48
9

Note, eu fiz cúpula cavando como isso estava me incomodando e você também pode apenas adicionar:

MOZ_NO_REMOTE=1
export MOZ_NO_REMOTE

para o seu perfil.

    
por user2577 30.09.2010 / 15:31
4

Você pode tentar isso, quando você se conectou à máquina ( ssh [email protected] ; note: sem a opção -X), primeiro digite o seguinte comando

export DISPLAY=:0 

isso mudaria a exibição padrão para a tela da área de trabalho atual. E então basta digitar

firefox

para que o Firefox seja gerado na janela da área de trabalho. Certifique-se de ter logado na área de trabalho, sem o qual (sem logins) você receberá o seguinte erro;

firefox: cannot connect to X server :0

Esse método também funciona para desktops bloqueados. Por favor, certifique-se de ter feito login na área de trabalho e no shell ssh com o nome de usuário same .

Quando há várias sessões de área de trabalho, cada sessão é identificada por um número diferente como :0 , :1 , :2 , etc.

    
por josip b 11.10.2015 / 18:58
2

Nenhuma das outras soluções funcionou para mim, então foi depois de procurar em outros sites.

Você precisa executar o firefox em um processo separado da mesma maneira que faria se estivesse fazendo tudo na máquina local. Use o gerenciador de perfil para criar um novo perfil da seguinte forma.

export MOZ_NO_REMOTE=1
firefox -ProfileManager

Para manter as coisas consistentes, decidi nomear cada novo perfil na máquina externa da mesma forma que o nome do host.

    
por verayth 24.01.2017 / 22:51
0

Vou apenas adicionar o que funcionou para mim. O uso de firefox -no-remote falhou com o erro normal

Error: GDK_BACKEND does not match available displays

No entanto, os seguintes trabalhos:

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

A opção -Y permite o encaminhamento confiável do X11. Os encaminhamentos confiáveis do X11 não estão sujeitos aos controles de extensão X11 SECURITY. Você pode considerar adicionar a opção -C ao comando ssh para ativar a compactação também.

    
por rahul1210 26.03.2017 / 21:38
0

Navegação remota simples

Se você quiser navegar na Web localmente como se estivesse sentado em frente a uma caixa remota:

$ ssh -X [email protected]

execute o Firefox dentro da sessão de terminal remoto :

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

Observe o uso do -X flag no comando ssh . Você também pode executar as duas etapas de uma só vez, como mostrado abaixo:

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

Tunelando um IP remoto: porta

Se você tiver um aplicativo em execução remotamente que expõe algum tipo de front-end da web, você terá interesse em expor a porta IP: porta como se fosse uma porta IP: local. Nesse caso, a opção -L define uma correspondência entre localhost:localport e remotehost:remoteport , conforme mostrado no pseudo comando abaixo:

ssh -L localhost:localport:remotehost:remoteport [email protected]

Por exemplo:

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

execute o Firefox localmente :

$ firefox http://127.0.0.1:18080

No exemplo acima, você está se conectando via SSH a [email protected] e está interessado em um front-end da Web exposto em internal.example.com:8080 . Essa porta IP: remota será exposta localmente em 127.0.0.1:18080 .

    
por Richard Gomes 16.05.2018 / 03:19

Tags