web-dev-qa-db-fra.com

Comment lancer une fenêtre firefox à distance via SSH?

Quand je SSH à une boîte distante

$ ssh -X remotebox

puis démarrez Firefox sur le boîtier distant

remotebox$ firefox

et j’ai firefox fonctionnant sur ma machine locale, une fenêtre firefox locale s’ouvrira. aucun processus firefox n'est en cours d'exécution sur la boîte à distance.

Si firefox ne fonctionne pas sur ma machine locale, une fenêtre firefox distante s'ouvrira.

Pourquoi ouvre-t-il une fenêtre firefox locale? Comment puis-je empêcher cela?


Voici quelques informations supplémentaires de mon système 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

Informations de 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

La commande suivante démarre une session firefox à distance avec une fenêtre firefox à distance.

remotebox$ firefox -no-remote

La commande suivante produit un bref délai, puis revient à Invite et une fenêtre firefox locale apparaît. Aucun processus firefox en cours d'exécution sur la remotebox.

remotebox$ firefox

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

La commande suivante sur remotebox2 démarre une session firefox distante comme prévu.

remotebox2$ firefox

Je ne sais pas pourquoi firefox sur remotebox2 démarre une session à distance au lieu d’une session locale.

56
lesmana

en plus de firefox -no-remote, un autre paramètre est firefox -no-xshm, qui indique la technique utilisée pour le faire fonctionner.

La mémoire partagée X11 est une technique de communication interprocessus qui peut être utilisée par toutes les applications connectées à une session x serveur donnée. Il peut être utilisé pour effectuer un glisser-déposer et d'autres types d'interactions sur le bureau.

Il peut être (et est) également utilisé pour implémenter des applications "ouvertes une fois", afin de réduire l'encombrement (ou le nombre de fenêtres).

Le protocole X11 étant transparent au réseau, la "mémoire partagée" est étendue aux clients X11 distants.

46
ithkuil

Essayez firefox -no-remote

15
Dennis Williamson

Notez que j'ai creusé dans le dôme car cela me dérangeait et vous pouvez aussi ajouter:

MOZ_NO_REMOTE=1
export MOZ_NO_REMOTE

à votre profil.

10
user2577

Vous pouvez essayer ceci lorsque vous vous êtes connecté à la machine (ssh user@Host; remarque: sans l'option -X), tapez d'abord la commande suivante

export DISPLAY=:0 

cela changerait l'affichage par défaut à celui de l'écran du bureau actuel. Et puis tapez juste

firefox

faire apparaître firefox sur la fenêtre du bureau. Assurez-vous que vous êtes connecté au bureau, sans lequel (sans connexions) vous obtiendrez l'erreur suivante;

firefox: cannot connect to X server :0

Cette méthode fonctionnerait également pour les ordinateurs verrouillés. Assurez-vous que vous êtes connecté au bureau et au ssh Shell avec le nom d'utilisateur identique.

Lorsqu'il y a plusieurs sessions de bureau, chaque session est identifiée par un numéro différent: :0, :1, :2, etc.

4
josip b

Aucune des autres solutions ne fonctionnant pour moi, c’est donc après quelques recherches sur d’autres sites.

Vous devez exécuter firefox dans un processus séparé de la même manière que si vous le faisiez tous sur la machine locale. Utilisez le gestionnaire de profil pour créer un nouveau profil comme suit.

export MOZ_NO_REMOTE=1
firefox -ProfileManager

Pour garder les choses cohérentes, j'ai décidé de nommer chaque nouveau profil sur la machine externe de la même manière que le nom d'hôte.

2
verayth

Navigation à distance simple

Si vous souhaitez naviguer sur le Web localement comme si vous étiez assis devant une boîte distante:

$ ssh -X [email protected]

puis lancez Firefox dans la session du terminal distant:

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

Notez l'utilisation de l'indicateur -X dans la commande ssh. Vous pouvez également effectuer les deux étapes en une seule fois, comme indiqué ci-dessous:

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

Tunnelling d'une adresse IP distante: port

Si vous avez une application s'exécutant à distance qui expose une sorte de front web, vous serez intéressé par l'exposition du port IP: distant comme s'il s'agissait d'un IP local: port. Dans ce cas, l'option -L définit une correspondance entre localhost:localport et remotehost:remoteport, comme indiqué dans la pseudo-commande ci-dessous:

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

Par exemple:

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

puis lancez Firefox localement:

$ firefox http://127.0.0.1:18080

Dans l'exemple ci-dessus, vous vous connectez via SSH à [email protected] et vous êtes intéressé par une interface Web exposée à internal.example.com:8080. Cette adresse IP distante: le port sera exposé localement à 127.0.0.1:18080.

1
Richard Gomes

Je vais juste ajouter ce qui a fonctionné pour moi. Utiliser simplement firefox -no-remote a échoué avec l'erreur habituelle

Error: GDK_BACKEND does not match available displays

Cependant, les éléments suivants ont fonctionné:

ssh -Y user@Host
firefox -no-remote

L'option -Y active le transfert X11 de confiance. Les redirections X11 de confiance ne sont pas soumises aux contrôles d'extension X11 SECURITY. Vous pouvez envisager d'ajouter l'option -C à la commande sshpour activer également la compression.

0
rahul1210