Uzak bir firefox penceresini SSH ile nasıl açarım?


56

Uzak bir kutuya SSH gönderdiğimde

$ ssh -X remotebox

daha sonra uzak kutudaki firefox'u başlatın

remotebox$ firefox

ve yerel makinemde çalışan bir firefox var, yerel bir firefox penceresi açılacak. uzak kutu üzerinde hiçbir firefox işlemi çalışmıyor.

Firefox yerel makinemde çalışmıyorsa, uzak bir firefox penceresi açılacaktır.

Neden yerel bir firefox penceresi açıyor? Bunu nasıl önleyebilirim?


İşte benim yerel sistem hakkında daha fazla bilgi.

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

Uzaktan kutunun bilgisi.

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

Aşağıdaki komut, uzak bir firefox penceresiyle uzak bir firefox oturumu başlatır.

remotebox$ firefox -no-remote

Aşağıdaki komut kısa bir gecikme üretir, ardından tekrar istemeye düşer ve yerel bir firefox penceresi açılır. Uzaktan kutusunda çalışan bir firefox işlemi yok.

remotebox$ firefox

Remotebox2 bilgileri.

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'deki aşağıdaki komut beklendiği gibi uzak bir firefox oturumu başlatır.

remotebox2$ firefox

Neden remotebox2'deki firefox'un yerel bir oturum yerine uzak bir oturum başlattığını bilmiyorum.


$DISPLAYDeğişken içeriğini hem yerel hem de uzak makinede alabilir miyiz?
aperson

@ aperson, soru güncellendi.
lesmana 03:10

Teşekkürler, bu $DISPLAYbir sorun gibi görünmüyor, ssh işleri düzgün şekilde ayarlıyor gibi görünüyor.
aperson

Yanıtlar:


46

Bir firefox -no-remote diğer parametrenin yanı sıra , firefox -no-xshmçalışması için kullanılan tekniği ortaya çıkaran şeydir.

X11 paylaşılan hafızası, belirli bir x sunucu oturumuna bağlı tüm uygulamalar tarafından kullanılabilecek bir işlemler arası iletişim tekniğidir. Sürükle ve bırak ve diğer masaüstü etkileşimi türlerini gerçekleştirmek için kullanılabilir.

Ayak izini (veya pencere sayısını) azaltmak için "bir kez aç" uygulamaları uygulamak için de kullanılabilir (ve kullanılır).

X11 protokolü ağ şeffaf olduğundan, "paylaşılan bellek" uzak X11 istemcilerine de genişletilir.


Bunu yapmamak için x yapabileceğim bir yol var mı? Kolay dağıtım için bir video oyunu / şarap düzenini konteynır haline getirmeyi arıyorum, ancak bu durum başımı ağrıtıyor, çünkü kabın kullanıcısının kurup çalıştırmasına bağlı olarak belirsiz davranışlara neden olacak. X iletme işlemini yapmak için bu çözümü kullanıyorum: stackoverflow.com/a/25168483 ve kabın ana bilgisayarla hiçbir zaman belleği paylaşmadığından emin olmak istiyorum.
Sir Madde

Benim için işe yaramıyor
Bob Ebert

Aşağı öneriyi deneyin: ihracat MOZ_NO_REMOTE = 1
Kieveli

15

Deneyin firefox -no-remote


bu, uzak bir firefox penceresi açarken çalışır. fakat hala uzak bir komutun neden yerel bir firefox penceresini açmasını tetikleyebileceğini anlamıyorum.
lesmana

@lesmana bu, x11-forwarding işleminden kaynaklanıyor olabilir - eğer bu ayarlanmışsa, sshd_configyürütüldüğü ve geri tünellendiği bir durum olabilir.
Marco Ceppi

10

Not, bu beni rahatsız ediyor gibi kazı kubbe yaptım ve siz de ekleyebilirsiniz:

MOZ_NO_REMOTE=1
export MOZ_NO_REMOTE

profilinize


4

Bunu makineye bağlandığınızda deneyebilirsiniz ( ssh user@host; not: -X seçeneği olmadan), önce follow komutunu yazın

export DISPLAY=:0 

bu, varsayılan ekranı mevcut masaüstü ekranınınki ile değiştirir. Ve sonra sadece yaz

firefox

Firefox'un masaüstü penceresinde ortaya çıkması için. Masaüstünde oturum açtığınızdan ve giriş yapmadığınızdan emin olun (giriş yok) aşağıdaki hatayı alırsınız;

firefox: cannot connect to X server :0

Bu yöntem aynı zamanda kilitli masaüstleri için de işe yarar. Lütfen masaüstünde ve aynı kullanıcı adıyla ssh kabuğuna giriş yaptığınızdan emin olun .

Çoklu masaüstü oturumları olduğunda, her oturum gibi farklı bir sayı ile tanımlanır :0, :1, :2vb


Bu benim için çalışan tek cevap.
CevapSeeker

2

Diğer çözümlerin hiçbiri benim için çalıştı, bu yüzden diğer sitelerde biraz arama yaptıktan sonra oldu.

Firefox'u, hepsini yerel makinede yapıyorsanız yaptığınız gibi, ayrı bir işlemde çalıştırmanız gerekir. Aşağıdaki gibi yeni bir profil oluşturmak için profil yöneticisini kullanın.

export MOZ_NO_REMOTE=1
firefox -ProfileManager

İşleri tutarlı tutmak için harici makinedeki her yeni profili ana bilgisayar adıyla aynı şekilde adlandırmaya karar verdim.


1

Basit uzaktan tarama

Uzak bir kutunun önünde oturuyormuş gibi web’de yerel olarak gezinmek istiyorsanız:

$ ssh -X username@remote.example.com

ardından uzak terminal oturumunda Firefox'u çalıştırın :

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

-XBayraktaki sshkomutun kullanıldığına dikkat edin . Her iki adımı da aşağıda gösterildiği gibi tek seferde yapabilirsiniz:

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

Uzak bir IP tüneli: port

Uzaktan çalışan bir uygulamanız varsa, bir tür web önyüzünü ortaya çıkarırsanız, uzak IP: bağlantı noktasını yerel bir IP: bağlantı noktası gibi göstermekle ilgilenirsiniz. Bu durumda, -Lseçenek aşağıdaki sözde komutta gösterildiği gibi localhost:localportve arasında bir yazışma tanımlar.remotehost:remoteport

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

Örneğin:

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

daha sonra yerel olarak Firefox'u çalıştırın :

$ firefox http://127.0.0.1:18080

Yukarıdaki örnekte, SSH ile bağlantı kuruyorsunuz username@router.example.comve açıkta bulunan bir web arayüzüyle ilgileniyorsunuz internal.example.com:8080. Bu uzak IP: port yerel olarak adresinde gösterilecektir 127.0.0.1:18080.


0

Sadece benim için neyin işe yaradığını ekleyeceğim. Sadece firefox -no-remotenormal hata ile başarısız kullanarak

Error: GDK_BACKEND does not match available displays

Ancak, aşağıdaki çalıştı:

ssh -Y user@host
firefox -no-remote

Bu -Yseçenek güvenilir X11 iletmeyi sağlar. Güvenilir X11 iletimleri, X11 SECURITY genişletme denetimlerine tabi değildir. Sıkıştırmayı etkinleştirmek -Ciçin sshkomuta seçenek eklemeyi düşünebilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.