X11 iletme etkinken ssh'ing işleminden sonra bir X programını açarken “ekranı açamıyorum” hatasını nasıl düzeltirim?


90

Mac'imdeki (OS X 10.6.8) X11 uygulamasını (XQuartz 2.3.6, xorg-server 1.4.2-apple56) başlattıktan sonra, X11'de bir terminal açıp çalıştırdıktan sonra xhost +, Ben o zaman ssh -Y Ubuntu 10.04 VM’ime (VMware Fusion'da çalışıyor). Kaçtığımda gedit .bashrc (örneğin), alıyorum:

(gedit:9510): Gtk-WARNING **: cannot open display: 

set | grep DISPLAY hiçbir şey döndürmez.

Ama eğer ssh -Y Ubuntu 11.04 makineme, gedit .bashrc Eserleri. echo $DISPLAY "localhost: 10.0" döndürür.

denedim export DISPLAY=localhost:10.0 VM'ime girip çalıştırırken gedit .bashrc, ama anladım:

(gedit:9625): Gtk-WARNING **: cannot open display: localhost:10.0

Birinin neden işe yaradığını ve diğerinin çalışmadığını açıklayan iki farklı Ubuntu makinesinin konfigürasyonunda farklı ne olabilir?

Güncelleştirme: Tarafından önerildiği gibi Zoredache aşağıdaki yorumda koştum sudo apt-get install xbase-clientsama aynı sorunu yaşamaya devam ediyorum.


2
Ubuntu 10.04 kutusunda kurulu X11 için uygun aletler var mı? Henüz kurulmamışsa, xbase-istemcilerini kurun.
Zoredache

Kurdum ama hala aynı problemim var. (Yukarıyı görmek.)
Daryl Spitzer

Evet. Emin olmak için VM'yi yeniden başlattım (ve daha sonra SSH üzerinden tekrar bağlandım).
Daryl Spitzer

3
Belki bağlandığınızda -vv seçeneğini ssh'ye iletmeyi deneyin, bu ayrıntılı hata ayıklama iletilerini yazdırır, bağlantı kurarken X11 yönlendirmesi hakkında birkaç yorum görmelisiniz.
Zoredache

1
Benim durumumda sadece MacOS'un XQuartz versiyonunun yükseltilmesi meselesiydi.
Waruna Ranasinghe

Yanıtlar:


35

Sunucunun sshd_config dosyasını kontrol edin (normalde /etc/ssh/sshd_config ) ve X11Forwarding seçeneğinin satırda etkinleştirildiğinden emin olun.

X11Forwarding yes

X11 Yönlendirme belirtilmezse, varsayılan, kontrol edebileceğim Debian makinelerinde değildir.


4
Hem xbase-client'ı kurmam hem de X11Forwarding'i etkinleştirmem gereken başka bir Ubuntu VM kurduktan sonra keşfettim. Cevabınızı her ikisini de içerecek şekilde güncelleyin, kabul ediyorum.
Daryl Spitzer

1
İlginç. En azından bu sabah yaptığım 10.04 yeni kurulumunda X11Forwarding varsayılan olarak etkindi. Ubuntu adamları tekrar varsayılanlarla uğraşıyor olmalılar.
Zoredache

19
@DerfK, sistemimde "X11Forwarding evet" zaten vardı, hala hata alıyorum, (gedit: 8381): Gtk-WARNING **: ekranı açamıyor: Bu gibi durumlarda
A J

Debian'da xauth paketini kurmanız ve ardından tekrar giriş yapmanız gerekebilir.
comte

51

itibaren xhost +: Uzak Sunucuda GUI Başlatırken “Ekranı Açamıyorum” Hatası Nasıl Onarılır :

Cevap : Bu makalede belirtilen xhost prosedürünü izleyerek “ekranı açamıyorum” hatasını düzeltebilirsiniz.

İstemcilerin xhost + kullanarak herhangi bir ana bilgisayardan bağlanmasına izin ver

Erişim kontrolünü devre dışı bırakmak için aşağıdaki komutu uygulayın;   istemcilerin herhangi bir ana bilgisayardan bağlanmasına izin verebilirsiniz.

$ xhost +

erişim kontrolü devre dışı, istemciler herhangi bir ana bilgisayardan bağlanabilir

X11 yönlendirmeyi etkinleştir

Ssh yaparken, X11 yönlendirmesini etkinleştirmek için -X seçeneğini kullanın.

$ ssh username@hostname -X

-Y seçeneğini kullanarak güvenilir X11 iletmeyi etkinleştirin,

$ ssh username@hostname -Y

GUI uygulamalarını bu ana bilgisayarda açın

Yukarıda açıklandığı gibi uzak ana bilgisayara ssh bağlantısını açtıktan sonra,   Herhangi bir sorun olmadan açacak olan herhangi bir GUI uygulamasını açabilirsiniz.

Hala “ekranı açamıyorum” hatasını alıyorsanız, EKRAN'ı ayarlayın.   aşağıda gösterildiği gibi değişken.

$ export DISPLAY='IP:0.0'

Not: IP, GUI'yi istediğiniz yerel iş istasyonunun IP adresidir.   görüntülenecek uygulama.


8
Not için +1 IP = GUI'yi almak istediğiniz yerel iş istasyonunun IP adresidir.
PCoder

3
OS X'te benzer sorunları olanlar için, XQuartz'ın kurulu olduğundan emin olun, aksi halde bu düzeltmelerden hiçbiri yardımcı olmaz. (OP'nin sorusu XQuartz'a sahip olduğunu gösteriyor, bu yüzden bu benimkilerle benzer sorunları olanlara bir not)
Dolan Antenucci

2
Çalışan olduğunu unutmayın xhost + çok güvensiz ve kullanılmamalıdır! Stefan Rogin'in dediği gibi, saldırgan ana bilgisayardan XSession'ınıza bağlanabilir, yazdığınız her şeyi okuyabilir ve hatta gördüğünüz ekranı değiştirebilir.
jirislav

17

Mac OS X'ten bir Ubuntu VM'ye giriş yaparken de bu sorunla karşılaştım - bir sebepten dolayı ekran değişkenindeki 'localhost'u sevmiyor gibi görünüyor. Bu yüzden IP’yi el ile ayarlayın, harrymc’in önerdiği gibi:

export DISPLAY="127.0.0.1:10.0"

O zaman X11 programları iyi olmalı. İşletim Sistemine yerel ev sahibinin ve 127.0.0.1'in eşdeğer olduğunu söylemek gerekli gibi görünmüyor, ancak en azından çalışıyor.


Bu benim için çalıştı. Localhost'un neden çalışmadığı hakkında bir fikrin var mı?
Alex

2
BİNGO! Bir süredir bu sorundan sıkıldım ... SSH ile bağlandım ve Gtk programlarını başlatamadım (ancak "xeyes" gibi düz X11, ancak işe yaradı). EKRAN doğru. Aslında, "localhost" un çözümü değildi! Manuel olarak ayarlarsam DISPLAY = 127.0.0.1: 10.0 veya DISPLAY = :: 1: 10.0 çalışır. / Etc / hosts dosyasını düzenlemek etkisizdir; ve DNS doğru bir şekilde yapılandırılmış ("dig localhost" correclty raporunu 127.0.0.1 ve :: 1) doğru şekilde yapıyoruz. Dolayısıyla, Gtk'deki (gtk? gdk? glib? other?) X11 bağlantılarında DNS çözümü ne olursa olsun bir hata gibi görünüyor.
Pablo Saratxaga

1
Beagle Kemik Siyahı'ndaki bir Debian yüklemesinde, / etc / host kök tarafından başkaları tarafından okunamayacak şekilde ayarlandı. Bu, burada bildirilen belirtilere neden oldu. / Etc / hosts dosyası tarafından herkes tarafından okunabilir hale getirildi ve düzgün çalıştı.
Daniel

13

CentOS KVM sunucumda bu sorunu yaşadım, "xauth" programını kaçırıyordum.


1
Bu benim minimum debian kurulumumda bana yardımcı oldu, çok teşekkür ederim!
binOr

9

Eğer bu problemin varsa bir süre sonra ile çalışırken -X arg. ya da sadece ForwardX11 / etc / ssh / ssh_config içinde, sonra çalıştır $ ssh username@hostname -Y, etkinleştirmek güvenilir X11 yönlendirme , kesin nedeni bilmiyorum ama tahmin ediyorum -X bazı özellikler bir süre sonra muhtemelen güvenliği artırmak için geçerliliğini yitirir.

İşte çevrimiçi bulduğum şey:

Eğer ssh -X remotemachine kullanıyorsanız, uzak makine bir   güvenilmeyen müşteri. Yani yerel müşteriniz uzaktaki bir komutu gönderir   makine ve grafiksel çıktıyı alır. Komutunuz ihlal ederse   Bazı güvenlik ayarları yerine bir hata alırsınız.

Ancak, ssh -Y remotemachine kullanıyorsanız uzak makine olarak kabul edilir.   güvenilir müşteri Bu son seçenek güvenlik sorunlarını açabilir. Çünkü   diğer grafik (X11) istemcisi uzak makineden veri alabilir   (ekran görüntüleri yapın, keylogging ve diğer kötü şeyler yapın)   bu verileri değiştirmek mümkün.

Bu şeyler hakkında daha fazla bilgi edinmek istiyorsanız, okumanızı öneririm.   Xsecurity manpage veya X Security extension spec. Ayrıca sen   seçenekleri arasında, ForwardX11 ve ForwardX11Trusted seçeneklerini kontrol edebilirsiniz.   / Etc / SSH / ssh_config.

kaynaklar:


4

UXTERM veya XTERM çalışırken sadece sorun

export $DISPLAY 

Değişken orada olacak. Sonra sadece ayarlayın ve verin.


4

Sadece Mac'imde Test Edildi, Diğer Sistemler İyi Olabilir :

  1. İstemcilerin xhost + kullanarak herhangi bir ana bilgisayardan bağlanmasına izin ver

    $ xhost +

  2. X11 ekranını destekleyen bir ortamınız olmalıdır

    [Mac Sistemi] Mac için X11'i yükleyin https://www.xquartz.org/

  3. Ssh-server'ınızın x11'i göstermesine izin vermelisiniz

    güncelleştirme /etc/ssh/sshd_config ve ayarla X11Forwarding yes, ardından ssh sunucunuzu yeniden başlatın

  4. Ssh oturumu ileri x11 ile göstermek izin vermelisin -X parametre

    $ ssh -X kullanıcı @ ip

  5. XC11 uygulaması PyCharm'te nasıl açılır?
    • X11 ekranını destekleyen bir ssh oturumu açın (bu oturumu korumayı unutmayın)
    • koşmak echo $DISPLAY bu ssh oturumunda
    • set DISPLAY PyCharm'ınız için ortam değişkeni

1
Bu neden farklı veya neden diğer cevapların herhangi biri üzerinde tercih edilmeli? Lütfen basit bir yöntemle yapabileceğinizi açıklayın Düzenle . Bunu yapabilirsin!!
Pimp Juice IT

@ McDonald's Teşekkürler, daha fazla ayrıntıyla güncellendi.
Color

2

Solaris 10 ile de bu problem yaşadım ve dinleyicinin kurulmadığını öğrendim.

svccfg –s /application/x11/x11-server listprop options/tcp_listen
svccfg –s /application/x11/x11-server setprop  options/tcp_listen = true

2

Koymak zorunda kaldım /etc/ssh/sshd_config devamındaki:

X11UseLocalhost no

Aksine daha sonra "evet" olarak ayarlayın. Varsayılan "HAYIR" ise garip Windows altında XMing ile macun kullanan kullanıcılar. Fedora üzerinden düz ssh kullanıyorum. Bazen bize vermeye başlardı

error can't open display localhost

Sunucunun yeniden başlatılması genellikle sorunu çözer, ancak bu aptalcadır. Yukarıdakileri yaptım, servisi yeniden başlattım sshd sunucuda ve presto yeni bağlantılar tekrar iyi çalışıyor.


1

CentOS 6.5’te, / etc / hosts ile uğraştıktan sonra aniden uzaktaki X programlarına erişimi kaybettim. Boş $ DISPLAY değişkeninin aynı belirtisi (elle ayarlama / verme konusunda yardım yok).

Asıl ana bilgisayar adını gösteren 127.0.0.1 girdisi gereklidir; Aslında, siparişin de alakalı olduğu görülüyor (son koy & çalışmayacak ...)

[root@poseidon /etc]$ cat hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain localhost
::1     localhost6.localdomain6 localhost6
127.0.0.1 poseidon.mycampus.edu poseidon
1XX.XXX.XXX.208 poseidon.mycampus.edu poseidon

Bunu düzelttikten sonra, xeyes, xclock ve diğer X test oyuncakları tekrar çalışıyor, bu yüzden ihtiyaç duyduğum virt-manager da tekrar devreye giriyor.


1

Kurulumumda x iletmeyi engelleyen hoş bir hıçkırık buldum. Güvenlik duvarım yerel ağdan tüm bağlantıları engelliyordu ve böylece tünele ulaşılmasını engelliyordu


1

Konsole kullanıyorsanız, Xfce Terminal gibi başka bir terminal emülatörüne geçin ve root kullanarak tekrar deneyin.


1

açık terminal     $ ssh kullanıcı adı @ hostname -X

$ ssh username@hostname -Y

$ export DISPLAY='IP:0.0'

ihracat DISPLAY = "127.0.0.1:10.0" herkes işe yaramalı.


Teşekkürler. Özel durumum için ne zaman çalışır DISPLAY='localhost:10.0' çalışmıyor.
xpt

0

Bir sürü sıkıntıdan sonra, / etc / host dosyasındaki sunucunun hostname girişinin yanlış olduğunu öğrendim.

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.