Bagaimana cara meluncurkan jendela firefox jarak jauh melalui SSH?

56

Ketika saya SSH ke kotak remote

$ ssh -X remotebox

kemudian mulai firefox pada kotak remote

remotebox$ firefox

dan saya memiliki firefox berjalan di mesin lokal saya, jendela firefox lokal akan terbuka. tidak ada proses firefox yang berjalan di kotak remote.

Jika firefox tidak berjalan di mesin lokal saya maka jendela firefox jarak jauh akan terbuka.

Mengapa membuka jendela firefox lokal? Bagaimana saya bisa mencegahnya?


Berikut ini beberapa informasi lebih lanjut tentang sistem lokal saya.

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

Informasi 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

Perintah berikut memulai sesi firefox jarak jauh dengan jendela firefox jarak jauh.

remotebox$ firefox -no-remote

Perintah berikut menghasilkan penundaan singkat, lalu turun kembali ke prompt dan jendela firefox lokal muncul. Tidak ada proses firefox yang berjalan di remotebox.

remotebox$ firefox

Informasi 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

Perintah berikut pada remotebox2 memulai sesi firefox jarak jauh seperti yang diharapkan.

remotebox2$ firefox

Saya tidak tahu mengapa firefox di remotebox2 memulai sesi jarak jauh alih-alih sesi lokal.

lesmana
sumber
Bisakah kita mendapatkan konten $DISPLAYvariabel di mesin lokal dan remote?
aperson
@aperson, pertanyaan terbaru.
lesmana
Terima kasih, $DISPLAYsepertinya tidak menjadi masalah, ssh tampaknya mengatur semuanya dengan benar.
aperson

Jawaban:

46

selain firefox -no-remote parameter lain adalah firefox -no-xshmyang mengungkapkan teknik yang digunakan untuk membuatnya berfungsi.

Memori bersama X11 adalah teknik komunikasi antar proses yang dapat digunakan oleh semua aplikasi yang terhubung dengan sesi server x yang diberikan. Ini dapat digunakan untuk melakukan drag & drop, dan jenis interaksi desktop lainnya.

Itu dapat (dan) digunakan juga untuk mengimplementasikan aplikasi "buka sekali", untuk mengurangi jejak (atau jumlah jendela).

Karena protokol X11 transparan jaringan, "memori bersama" diperluas juga ke klien X11 jarak jauh.

ithkuil
sumber
Apakah ada cara saya bisa membuat x tidak melakukan ini? Saya mencari untuk men-setup permainan video / anggur untuk distribusi yang mudah, tetapi ini membuat saya sakit kepala, karena itu akan menyebabkan perilaku yang tidak ditentukan tergantung pada apa yang pengguna instal dan jalankan. Saya menggunakan solusi ini untuk melakukan penerusan x: stackoverflow.com/a/25168483 dan ingin memastikan bahwa wadah tidak pernah berbagi memori dengan host.
Sir Zat
Itu tidak berhasil untuk saya
Bob Ebert
Coba saran yang lebih rendah: ekspor MOZ_NO_REMOTE = 1
Kieveli
15

Mencoba firefox -no-remote

Dennis Williamson
sumber
ini berfungsi dalam membuka jendela firefox jarak jauh. tetapi saya masih tidak mengerti mengapa perintah jarak jauh dapat memicu jendela firefox lokal untuk dibuka.
lesmana
@lesmana ini mungkin disebabkan oleh penerusan x11 - jika itu adalah setup di sshd_configAnda mungkin memiliki situasi di mana ia dieksekusi dan diteruskan kembali.
Marco Ceppi
10

Catatan, saya melakukan penggalian kubah karena ini mengganggu saya dan Anda juga bisa menambahkan:

MOZ_NO_REMOTE=1
export MOZ_NO_REMOTE

ke profil Anda.

pengguna2577
sumber
4

Anda dapat mencoba ini, ketika Anda terhubung ke mesin ( ssh user@host; catatan: tanpa opsi -X), pertama-tama ketik perintah follow

export DISPLAY=:0 

ini akan mengubah tampilan default ke layar desktop saat ini. Dan kemudian ketik saja

firefox

agar firefox muncul di jendela desktop. Pastikan Anda telah masuk ke desktop, yang tanpanya (tanpa login) Anda akan mendapatkan kesalahan berikut;

firefox: cannot connect to X server :0

Metode ini juga bisa digunakan untuk desktop yang terkunci. Pastikan Anda telah masuk di desktop dan ssh shell dengan nama pengguna yang sama .

Ketika ada beberapa sesi desktop setiap sesi diidentifikasi dengan nomor yang berbeda sebagai :0, :1, :2, dll

josip b
sumber
Itulah satu-satunya jawaban yang berhasil untuk saya.
answerSeeker
2

Tidak ada solusi lain yang bekerja untuk saya, jadi ini setelah sedikit mencari di situs lain.

Anda perlu menjalankan firefox dalam proses terpisah dengan cara yang sama Anda lakukan jika Anda melakukan semuanya di mesin lokal. Gunakan manajer profil untuk membuat profil baru sebagai berikut.

export MOZ_NO_REMOTE=1
firefox -ProfileManager

Agar semuanya tetap konsisten, saya memutuskan untuk memberi nama setiap profil baru pada mesin eksternal sama dengan nama host.

verayth
sumber
1

Penjelajahan jarak jauh sederhana

Jika Anda ingin menjelajahi web secara lokal seolah-olah Anda sedang duduk di depan kotak remote:

$ ssh -X [email protected]

kemudian jalankan Firefox di dalam sesi terminal jarak jauh :

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

Perhatikan penggunaan -Xflag pada sshperintah. Anda juga dapat melakukan kedua langkah dalam sekali jalan, seperti yang ditunjukkan di bawah ini:

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

Tunneling IP jarak jauh: port

Jika Anda memiliki aplikasi yang menjalankan dari jarak jauh yang memperlihatkan semacam frontend web, Anda akan tertarik untuk mengekspos port IP: port seolah-olah itu adalah port IP: port lokal. Dalam hal ini, -Lopsi menentukan korespondensi antara localhost:localportdan remotehost:remoteport, seperti yang ditunjukkan pada perintah pseudo di bawah:

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

Sebagai contoh:

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

kemudian jalankan Firefox secara lokal :

$ firefox http://127.0.0.1:18080

Pada contoh di atas, Anda terhubung melalui SSH ke [email protected], dan Anda tertarik pada web frontend yang terbuka di internal.example.com:8080. Port IP: remote ini akan diekspos secara lokal di 127.0.0.1:18080.

Richard Gomes
sumber
0

Saya hanya akan menambahkan apa yang berhasil untuk saya. Cukup menggunakan firefox -no-remotegagal dengan kesalahan biasa

Error: GDK_BACKEND does not match available displays

Namun, yang berikut ini berhasil:

ssh -Y user@host
firefox -no-remote

The -Ypilihan memungkinkan dipercaya X11 forwarding. Penerusan X11 tepercaya tidak dikenai kontrol ekstensi X11 SECURITY. Anda dapat mempertimbangkan untuk menambahkan -Copsi pada sshperintah untuk mengaktifkan kompresi juga.

rahul1210
sumber