Masalah
Kebanyakan orang ingin terhubung ke server melalui ssh dengan opsi "-X" untuk menjalankan program GUI pada host jarak jauh menggunakan tampilan klien. Saya ingin menjalankan program GUI pada monitor fisik yang terpasang pada server. Apakah ini mungkin? Biarkan saya lebih spesifik:
Situasi saya adalah sebagai berikut: Saya memiliki workstation tanpa keyboard atau mouse, tetapi memiliki monitor yang terhubung dengannya. Saya ingin SSH menggunakannya dengan laptop saya dan dapat meluncurkan beberapa program grafis, seperti xeyes atau ssvnc dan menampilkannya di monitor workstation.
[xapple@laptop ~]$ ssh workstation
Last login: Mon Sep 26 20:03:35 2011 from laptop
[xapple@workstation ~]$ export DISPLAY=:0
[xapple@workstation ~]$ xeyes
No protocol specified
Error: Can't open display: :0
Edit: informasi tambahan
Saya mungkin harus menjelaskan beberapa hal dengan lebih jelas:
- Saya memiliki akses sudo di workstation, saya dapat menginstal apa pun jika diperlukan.
- Workstation menjalankan antarmuka pengguna GNOME.
- Sebelum melepas keyboard dan mouse dari workstation, saya masuk ke sesi GNOME. Seseorang dapat melihat desktop GNOME saya pada monitor workstation saat ini.
- Saya tidak ingin menjalankan program dari laptop saya di workstation. Saya ingin menjalankan program workstation di workstation. Xeyes atau apa pun yang dapat dieksekusi ditemukan pada server jarak jauh dan harus dijalankan pada monitor server jarak jauh
- Saya mengerti bahwa melakukan ini akan meninggalkan saya dalam situasi di mana kursor saya tidak akan terhubung ke antarmuka. Saya tidak dapat mengeklik sesuatu. Tidak apa-apa.
Setiap bantuan sangat dihargai!
xhost +
di server Anda?Jawaban:
setiap aplikasi xlib harus terhubung ke xserver. Anda harus memberi tahu aplikasi koneksi ke server dengan:
-display
xserver pertama biasanya dapat dijangkau oleh string koneksi ': 0'. jadi, coba ini:
atau ini
sumber
XAUTHORITY
akan diperlukan juga, karena server X11 akan menggunakan file Xauthority sementara.Apakah workstation ini menjalankan server X Windows? Tanpa itu, ini semua bisa diperdebatkan.
Anda perlu SESUATU untuk mengolah data menjadi grafik, piksel, warna, dan lokasi. 'Monitor' tidak berguna tanpa perangkat lunak untuk menjalankannya.
Dengan asumsi itu. (tetapi dari teks, pasti terdengar sebaliknya)
Mengingat nama host (dan resolusi DNS yang sesuai melalui / etc / hosts atau DNS atau apa pun) dari 'workstation' dan 'laptop' ... jika tidak, ganti nama host mesin dengan alamat IP yang sesuai.
Anda kemudian dapat keluar dari workstation pada saat ini, karena ini menetapkan izin pada Xserver workstation untuk memungkinkan 'laptop' untuk terhubung.
jika Anda memulai program Anda dengan DISPLAY env var yang diatur dengan tepat, Anda dapat menyebabkan aplikasi ditampilkan di workstation, saat berjalan di laptop Anda.
-atau-
metode mana pun akan bekerja, yang terakhir menyebabkan apa pun yang terkait dengan X11 ditampilkan di workstation ketika dimulai dari shell itu. (harapan itu masuk akal)
Baris 'xhost' adalah untuk mengizinkan izin laptop untuk terhubung ke Xserver workstation. Tanpanya, Anda akan mendapat izin ditolak, kecuali jika Anda memulai X server tanpa izin, yang sebenarnya tidak dianjurkan. Perlindungan 'xhost' masih timpang, karena data dikirim 'teks biasa' antara laptop dan workstation dan dapat diendus, tetapi ini adalah solusi yang mudah.
Jika Anda menginginkan privasi, Anda harus mengatur semacam terowongan terenkripsi antara laptop Anda dan workstation (port 6000 untuk tampilan: 0). Yup, itu jadi aneh saat ini.
Jika Anda berada dalam lingkungan yang terkendali, maka menggunakan perintah 'xhost + laptop' sudah cukup, jika Anda meninggalkan bagian 'laptop' dari perintah 'xhost +', maka SIAPA PUN dapat menyambung ke Xserver dan menampilkan sesuatu.
Ingat, mouse Anda TIDAK 'terhubung' ke workstation Xserver, dan Anda TIDAK akan dapat memanipulasi windows atau mengklik sesuatu.
Jika Anda ingin mouse terhubung, saya akan merekomendasikan sesuatu seperti x2x, sinergi, vnc atau aplikasi berbagi layar berbasis X Windows.
sumber