SSH üzerinden Xming ile X11 iletimi?


11

SSH erişimim var ve Xming yazı tipleri ile birlikte Xming yüklü. PuTTY'yi x11 iletecek şekilde yapılandırdım ve masaüstünü, burada verilen talimatlara göre localhost: 0'a yerleştirmesini söyledim .

Ancak, giriş yaptıktan ve startxhiçbir şey alamadım. Ya da daha doğrusu, her şeyin çalıştığını söyleyen bir sürü mesaj çalıştırıyor, ancak konsol penceremde bekleme durumundaymış gibi davranan bir imleç alıyorum. Ve bu kadar.

Neyi kaçırıyorum? Masaüstünü görmek için bir şey açmam gerekir mi?

Masaüstümü çalışma bilgisayarıma iletmek istiyorum, böylece RasPi ile öğle yemeğinde donanımı fiziksel olarak takmadan oynayabilirim. Lütfen yardım et.

DÜZENLE:

Xming çalışırken ve SSH'de çalışırken ve aradığında ne olduğunun ekran görüntüsü startx:

Xming yanıtlı SSH

DÜZENLEME 2:

Bu cevap diyor startxo Raspi X sunucusu başlar ve Windows üzerinde Xming sunucusu kullanıyorum, çünkü gereksizdir. Bu durumda, Windows'tan Xming'de masaüstü / GUI'ye nasıl ulaşabilirim? Çünkü Xming çalışıyor ve SSH etkinken bile normal bir konsol isteminden başka bir şey almıyorum. Belki de yanlış yapıyorum. İstediğim, uzak Windows bilgisayarımdaki bir pencerede çalışan tam, normal RasPi GUI'm. VNC kullanmak istemiyorum. İnternet üzerinden yönlendiriyorum. Oraya nasıl giderim?


2
Ahududu bilgisayarımdan Windows bilgisayarıma da grafik oturumu çalıştırmak istedim. Ve startx'in X sunucusu başlatması anlamına geldiğini söyleyen iletinizi gördüğümde, bir X programını başlatmak için gerekli olduğunu anladım ... Yani başlayalım ... x-session-manager! bu şekilde, uzak bilgisayarınızda grafik oturumunuz olur. teşekkürler, yolumu sen verdin!

Yanıtlar:


15

Xming'i Windows bilgisayarınızda başlatırsanız, zaten bir X sunucunuz çalışıyor demektir. Raspberry Pi'nizin X sunucusunu kullanarak başlatmanız gerekmez startx. X uygulamalarınız Raspberry Pi üzerinde çalışacak, ancak uygulama Windows'un Xming X sunucusuna çekilecektir.

Eğer dokümantasyon bağlantılı , Windows üzerinde X sunucusunu başlatmak zorunda ve bu Linux X sunucusunu başlatmak zorunda söz etmediğini belirtmektedir. Belgelerin son cümlesinde:

Artık yerel masaüstünüzdeki ana bilgisayardan X uygulamalarını çalıştırabilmelisiniz

"X uygulamaları", X sunucusunu (başlatılması gereken startx) değil, xclock, xeyes ve benzeri uygulamaları ifade eder .

Bir özel bir X uygulamasıdır lxsession (benim Raspbian en azından) LXDE'nin Standart oturum yöneticisi başlayacaktır. Konsolda bu uygulamayı başlatmak size aradığınız "tam GUI" verecektir:

lxsession

Şahsen başlamayı faydalı bulmuyorum lxsession, konsoldaki X uygulamalarını başlatmak benim için çok daha kolay.


1
Tamam. Bunu anlayabiliyorum, sanırım. Startx'ın gereksiz olduğunu söylüyorsunuz, çünkü RasPi x sunucusunu başlatıyor ve Windows'ta Xming sunucusunu kullanıyorum. Bu durumda, pencerelerden Xming üzerinde masaüstü / GUI'ye nasıl ulaşabilirim. Çünkü Xming çalışıyor ve SSH etkinken bile normal bir konsol isteminden başka bir şey almıyorum. Tam GUI'yi değil, yalnızca xming'de gerçek uygulamayı çalıştıracağımı söylüyorsunuz. Belki de yanlış yapıyorum. İstediğim, uzak Windows bilgisayarımdaki bir pencerede çalışan tam, normal RasPi GUI'm. VNC kullanmak istemiyorum. İnternet üzerinden yönlendiriyorum.
zenbike

Yanıt güncellendi.
asalamon74

(Beklendiği gibi) yanıt vermek biraz yavaşsa mükemmel çalışır. Yardımın için teşekkürler.
zenbike

1
… Ve rehberinizin bir seferde ssh üzerinde tek uygulamalar çalıştırmasını önermesinin nedeni budur ...
Alexander - Monica'yı yeniden eski haline

1
@ asalamon74 Teşekkürler! Vaov! bu sadece kickass. Deliğe kısa bir kablo ile usb'ye bağlı klavye ve fare ile uğraşmak zorunda değilim. Yukarıdaki kurulum ile tv önünde oturmak için kullanılır. ŞİMDİ? Ben sadece ssh ve gui'yi bir patron gibi çalıştırıyorum!
Dheeraj Bhaskar

1

Cygwin / X Kullanımı

Xming'e bağlı değilseniz, bunun yerine Cygwin / X'i Windows'ta X sunucusu çalıştırmak için kullanabilirsiniz .

Raspberry Pi'nin Hazırlanması

PowerShell kullanarak Windows'tan Raspberry Pi'ye düzenli bir SSH bağlantısı kurmaya çalışın :

PowerShell ve SSH ile Windows'ta Raspberry Pi'de oturum açın

Raspbian Buster içerdiğini göz önüne alındığında X11Forwarding yesde /etc/ssh/sshd_config, senin Ahududu Pi de Windows üzerinde bir X sunucusuna X11 uygulamaların görsel çıkış iletmek gerekir.

Bir sonraki adım, bu X sunucusunun nasıl kurulacağını gösterir.

Cygwin / X'i Windows'a yükleme

Cygwin / X, Windows için Raspberry Pi'de çalışan GUI uygulamalarını görüntüleyen bir X sunucusu sağlar.

  1. İndirin ve çalıştırın setup-x86_64.exegelen Cygwin'ın web .

  2. Cygwin'in "Yerel Paket Dizini" için kullanabilirsiniz C:\Users\me\AppData\Roaming\Cygwin.

  3. Paketleri indirmek için yakınınızdaki bir sunucuyu seçin.

  4. "Görünüm" ü "Tam" olarak ayarlayın ve arayın xinit.

  5. "Yeni" sütununda, değeri "Atla" dan xiniten son sürümüne değiştirmek için açılır menüyü kullanın :

Cygwin ile xinit paketini yükleyin

  1. Paketi opensshaynı şekilde takın .

Windows'tan Raspberry Pi'ye bağlanın

  1. Windows' Başlat menüsünü kullanarak X sunucusunu başlatın: Cygwin-X → XWin Server. Bu herhangi bir pencere açmaz, ancak sistem tepsinizde iki yeni simge görmelisiniz:

Sistem tepsisindeki XWin sunucusu simgeleri

  1. Cygwin terminalini başlatın: Cygwin → Cygwin64 Terminal

  2. DISPLAYOrtam değişkenini Windows'ta X sunucusunun çalıştığı yere ayarlayın :

    export DISPLAY=:0.0

  3. Raspberry Pi'nize X11 iletimi ile bağlanın:

    ssh -Y pi@raspberrypi

Cygwin Terminali ile giriş yapın

SSH oturumunda artık Raspberry Pi'de Thonny gibi bir X uygulaması başlatabilirsiniz :

Thonny Windows'a yönlendirildi

Alternatif olarak, sorunun yorumlarında belirtildiği gibi kullanıcı1297, x-session-managerharici bir monitörde HDMI aracılığıyla Raspberry Pi'ye bağlanırken elde edeceğiniz deneyimi taklit etmek için çalışabilirsiniz :

Rasbpian masaüstü Windows'a gönderildi

Bir uygulamayı önce kabuğuna adını yazmadan doğrudan başlatmak istiyorsanız, bunu kullanın:

ssh -Y pi@raspberrypi x-session-manager

MacOS'ta

XQuartz , macOS için bir X sunucusu sağlar.

XQuartz'ı yükleyin, oturumu kapatıp tekrar açın (yeni DISPLAYetkin değerini elde etmek için ), ardından Bash'ten SSH ile uygulamaları başlatın:

ssh -Y pi@raspberrypi thonny

XQuartz kullanarak macOS içinde Thonny


1

Zaten Windows'ta bir X sunucusu çalıştırıyorsanız (Xming'de olduğu gibi), Windows tarafı çoğunlukla yapılır (ancak birkaç önemli ayrıntı için aşağıya bakın). Kalan anahtar bit, pi'deki X11 uygulamalarına X11 verilerini Windows PC'nize göndermelerini söylemektir.

Bu, DISPLAYortam değişkeni ile yapılır . Normalde, X sunucusu ve uygulaması aynı bilgisayarda çalışıyorsa, DISPLAY sadece sunucu numarasını belirtir (örneğin :0yalnızca bir X sunucusu çalıştırıyorsanız) veya belki bir sunucu ve ekran (ör. :0.0). IP adresi olmadığından, uygulamaların X kitaplığına sunucunun yerel olduğunu ve bağlantıların buna göre yapılacağını söyler (muhtemelen bir tür paylaşılan bellek aktarımı olsa da).

Uygulamaya X11 verilerini uzak bir düğüme göndermesini söylemek için DISPLAYdeğişkene bir IP adresi ekleyin . Örneğin export DISPLAY=192.168.1.10:0,. Bu, tüm X11 uygulamalarına 192.168.1.10 düğümündeki X sunucusu # 0'a bir TCP bağlantısı açmak için ihtiyaç duyduklarını söyleyecektir. DNS ana bilgisayar adları, ağınızda varsa, burada iyidir.

İki potansiyel problem

İlk paragrafta yazdığım gibi, sadece Xming'i çalıştırmak yeterli olmayabilir. Ek yapılandırma gerekebilir.

Birincisi, X11 sunucunuzun TCP üzerinden uzak düğümlerden bağlantıları kabul edecek şekilde yapılandırılması gerektiğidir. Bugün dağıtılan birçok X sunucusu (Xming hakkında bir bilgim yok), açıkça aksi belirtilmedikçe yalnızca yerel olarak çalışan uygulamalardan gelen bağlantıları kabul eder. Bu bir güvenlik özelliğidir, çünkü her açık soket saldırı için potansiyel bir vektördür.

İkincisi, X11 sunucunuzun bağlanmasına izin verilen ana bilgisayar / kullanıcı veritabanını tutmasıdır. Raspberry Pi'nin IP adresini beyaz listeye almanız gerekir. Bunu, xhostWindows'ta Xming'in komutunu, örneğin bir xterm'de çalışan bir konsoldan çalıştırarak yapabilirsiniz. xhost +Bu güvenlik kontrolünü devre dışı bırakmak için de yazabilirsiniz , ancak bu tehlikelidir, çünkü dünyanın herhangi bir yerinden herhangi bir uygulamanın ekranınıza bağlantı açmasına izin verecektir. Herkese güvendiğiniz bir LAN'da (örneğin kendi eviniz) bir güvenlik duvarının arkasındaysanız, bu en kolay yaklaşımdır, ancak xhostdeğilseniz uygun şekilde yapılandırmak için zaman ayırın .

Alternatif: ssh -Y

Yukarıdaki yaklaşımı kullanarak, X11 uygulamalarınızın tümü X sunucunuza TCP bağlantılarını açmaya çalışır. Bu bağlantılar güvenli değildir. LAN gözetleme paketlerinizdeki biri bunları kesebilir.

Bu sorunu çözmek için, Raspberry pi üzerinde DISPLAY değişkenini ayarlamak yerine, bu -Yparametreye bağlanırken parametreyi kullanın (örn. slogin -Y hostname). -Y parametresi (-X gibi), X11 trafiğini taşımak için düğümler arasında bir tünel oluşturur. Bu, X11 trafiğini şifreli ve güvenli tutacaktır. Ayrıca uygulamaların tüneli kullanması için kendi EKRAN ortam değişkenini atayacaktır. xhostBağlantılar yerel olarak (SSH tünelinin başlangıç ​​tarafından) kaynaklandığı için (X sunucunuz söz konusu olduğunda) ile uğraşma ihtiyacını da ortadan kaldırabilir .

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.