SSH: GUI programlarını X ekranda değil uzak ekranda başlatın


11

Sorun

Çoğu kişi, istemcinin ekranını kullanarak uzak ana bilgisayarda GUI programlarını çalıştırmak için "-X" seçeneğiyle ssh üzerinden bir sunucuya bağlanmak ister. GUI programlarını sunucuya bağlı fiziksel monitörde çalıştırmak istiyorum. Mümkün mü ? Daha spesifik olalım:

Benim durumum şudur: Klavye veya fare olmayan bir iş istasyonum var, ancak bağlı bir monitörü var. Dizüstü bilgisayarımla SSH yapmak ve xeyes veya ssvnc gibi bazı grafik programları başlatabilir ve iş istasyonunun monitöründe görünmesini istiyorum.

[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

Düzenle: ekstra bilgi

Belki birkaç şeyi daha net açıklamalıyım:

  • İş istasyonuna sudo erişimim var, gerekirse her şeyi yükleyebilirim.
  • İş istasyonu GNOME kullanıcı arayüzünü çalıştırıyor.
  • Klavye ve fareyi iş istasyonundan çıkarmadan önce bir GNOME oturumuna giriş yaptım. Bunun için GNOME masaüstümü şu anda iş istasyonunun monitöründe görebilirsiniz.
  • İş istasyonumdaki dizüstü bilgisayarımdan program çalıştırmak istemiyorum. İş istasyonunda iş istasyonu programları çalıştırmak istiyorum. Uzak sunucuda xeyes veya yürütülebilir dosyalar bulunur ve uzak sunucunun monitöründe çalıştırılmalıdır
  • Bunu yaptığımın imlecimin arayüze bağlı olmayacağı bir durumda bırakacağımı anlıyorum. Hiçbir şeyi tıklayamıyorum. Bu iyi.

Herhangi bir yardım büyük takdir!


xhost +Sunucunuzda yürüttünüz mü ?
karlphillip

Bu ilginç bir soru olduğunu düşünüyorum, örneğin 3 arasında aynı klavye ve fare kullanmak için Synergy çalıştıran 3 ubuntu PC varsa ... oturum açtığınızda 3 kez giriş yapmak zorunda. ana PC'ye giriş yaptığınızda diğer iki PC'de oturum açmanızı sağlayan bir komut dosyası yapmak güzel olurdu.
Sverre

Yanıtlar:


5

herhangi bir xlib uygulaması bir xserver'a bağlanmalıdır. Uygulamaya, sunucuya bağlantıyı aşağıdakilerden biri ile söylemeniz gerekir:

  • ortam değişkenini ayarlama DISPLAY
  • gibi bir komut satırı bayrağı kullanma -display

ilk xserver'a genellikle ': 0' bağlantı dizgisiyle ulaşılabilir. bu yüzden şunu deneyin:

xeyes -display :0

veya bu

env DISPLAY=:0 xeyes

Çoğu durumda (GNOME'un GDM'si tarafından başlatıldığında olduğu gibi), XAUTHORITYX11 sunucusu geçici bir Xauthority dosyası kullanacağından ayar da gerekecektir.
user1686

İlginç, $ DISPLAY değişkenini ayarladıktan sonra, şimdi "Hata: Görüntü açılamıyor" iletisine ek olarak, "xeyes'i başlatmaya çalışırken" Protokol belirtilmedi "iletisini alıyorum.
xApple

@grawity Tavsiye için teşekkürler. Komutumun çalışması için XAUTHORITY ayarımı nasıl ayarlayabilirim?
xApple

5

Bu iş istasyonu bir X Windows sunucusu çalıştırıyor mu? O olmadan, hepsi tartışmalı.

Verileri grafiklere, piksellere, renklere ve konumlara işlemek için BAZI gerekir. Bir 'monitör' çalıştırmak için bir tür yazılım olmadan işe yaramaz.

Varsayalım. (ancak metinden, aksi halde ses çıkarır)

'İş istasyonu' ve 'dizüstü bilgisayarın' ana bilgisayar adları (ve / etc / hosts veya DNS ya da başka bir yöntemle uygun DNS çözümlemesi) verildiğinde ... değilse, makine ana makine adlarını uygun IP adresleriyle değiştirin.

ssh workstation
xhost +laptop

daha sonra bu noktada iş istasyonundan çıkış yapabilirsiniz, çünkü bu, iş istasyonunun Xserver'ındaki 'dizüstü bilgisayarın' bağlanmasına izin vermek için izinleri ayarlar.

programlarınızı uygun şekilde DISPLAY env var ayarıyla başlatırsanız, dizüstü bilgisayarınızda çalışırken uygulamaların iş istasyonunda görüntülenmesine neden olabilirsiniz.

DISPLAY=workstation:0 xeyes

-veya-

export DISPLAY=workstation:0
xeyes

her iki yöntem de işe yarayacaktır, ikincisi bu kabuktan başlatıldığında X11 ile ilgili her şeyin iş istasyonunda görüntülenmesine neden olur. (umarım mantıklıdır)

'Xhost' satırı, dizüstü bilgisayarın iş istasyonunun Xserver'ına bağlanmasına izin vermektir. Bu olmadan, X sunucusunu gerçekten izin verilmeyen NO izinleriyle başlatmazsanız izin reddedilir. Veriler dizüstü bilgisayar ve iş istasyonu arasında 'düz metin' olarak gönderildiği ve koklanabileceği için 'xhost' koruması hala topal, ancak bu kolay bir çözüm.

Gizlilik istiyorsanız, dizüstü bilgisayarınız ve iş istasyonu arasında bir tür şifreli tünel oluşturmanız gerekir (ekran için bağlantı noktası 6000: 0). Evet, bu noktada garipleşiyor.

Kontrollü bir ortamdaysanız, 'xhost + laptop' komutunu kullanmak yeterli olacaktır, eğer 'xhost +' komutunun 'laptop' kısmından ayrılırsanız, ANYONE Xserver'a bağlanabilir ve bir şeyler görüntüleyebilir.

Unutmayın, fareniz Xserver iş istasyonuna 'bağlı' DEĞİLDİR ve pencereleri değiştiremez veya bir şeyleri tıklayamazsınız.

Farenin bağlanmasını istiyorsanız, x2x, sinerji, vnc veya X Windows tabanlı bir ekran paylaşım uygulaması gibi bir şey öneriyorum.


Cevabınız için teşekkürler ! Haklısın, belki daha fazla şey belirtmem gerekiyor: (1) İş istasyonu GNOME kullanıcı arayüzünü çalıştırıyor (2) Dizüstü bilgisayarımdan program çalıştırmak istemiyorum. Xeyes ya da iş istasyonunun monitörüyle (3) iş istasyonunda çalıştırılması gereken her şey (3) Sorun değil, imlecimin bağlanmayacağını anlıyorum.
xApple

Oh, o zaman gerçekten sadece iş istasyonuna ssh, DISPLAY değişkenini 'localhost: 0' (veya sadece ': 0') olarak ayarlamanız ve uygulamanızı başlatmanız gerekir. Yine de izinlerle (xhost + localhost muhtemelen en iyi cevap) ve nohup veya &! (arka plan ve reddetme) veya kabuktan bg / disown komutları, böylece oturumu kapattığınızda uygulama kapanmaz. (tabii ki istediğin bu değilse)
lornix

Ah, belki benim sorunum sadece izin sorunudur. Rağmen, "xeyes" kök olarak çalıştırırsanız hata mesajı aynıdır. İzin sorunlarını çözen bir yanıt gönderirseniz, bunu çözülmüş olarak işaretleyebilirim!
xApple

İş istasyonundaki X windows oturumuna giriş yapan var mı? Bu olmadan, program bağlantılarını dinleyen kod henüz aktif değil, sadece giriş şeyler. (Büyük ölçüde basitleştiriyorum!) İş istasyonuna ssh'ing yapmayı deneyin, sonra 'startx', sonra ekrana bağlanabilirsiniz. Başka bir yol, çıplak kemik X sunucusu kullanmak, 'X: 0' yazmak, DISPLAY değişkenini ayarlamak ve daha sonra 'xhost + laptop' (veya sadece 'xhost +') yapmaktır. Ama bu çoğu için biraz düşük seviyeye çıkıyor. (Test için harika!)
lornix

Evet, klavye ve fareyi ayırmadan önce iş istasyonunda bir GNOME oturumuna giriş yaptım. Hiçbiri daha az benim ssh oturumu "startx" komutunu yürütmeye çalıştı. Hata iletisi şuydu: "X: X sunucusunu çalıştırma yetkisi yok, iptal ediliyor."
xApple
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.