Sunucu yapılandırması izin vermezse X11'i SSH üzerinden iletme


10

A makinesinden B makinesine SSH üzerinden giriş yaptığım bir durumu düşünün, A makinesinde bir X oturumu var ve B'de bir X programı çalıştırmak istiyorum.

ssh -X Bşeffaf bir şekilde çalışmasını sağlar. Peki ya sunucu yapılandırması eksikse X11Forwarding yes, sunucuda kök izinlerim yok ve sunucu yöneticisi kayıtsız mı?

SSH kanalı üzerinden istediğimi aktarabildiğim için X11 bağlantısını iletmek kesinlikle mümkün. Aslında, yerel X sunucusu TCP bağlantılarına izin veriyorsa, ssh -R 6010:localhost:6000(ekran numaraları için ayarlanabilir) kadar kolaydır . Yerel X sunucusunun yalnızca soket bağlantılarına izin verdiği yaygın durum nedir? X'i minimum kurulum gereksinimleriyle (özellikle B'de) rahat ve güvenli bir şekilde nasıl iletirim?

Yanıtlar:


2

@Demi'nin cevabı iyi ama bence doldurmak çok yardımcı olacak.

  • local - bir Xserver'a hizmet veren yerel makine.
  • uzak - Xserver'a giden verileri yönlendiren uygulamaya hizmet veren uzak makine

Uzak /etc/ssh/sshd_config:

X11Forwarding no
X11DisplayOffset 10
X11UseLocalhost yes

Uzaktan kumanda ~/.Xauthorityboş veya mevcut değil

Yerel olarak:

Xephyr -ac -screen 1280x800 -br -reset   :2 &
DISPLAY=:2 ssh  -fR 6010:/tmp/.X11-unix/X2  user@remote "DISPLAY=:10 xeyes"

Testte yerel Ubuntu 18.05'i çalıştırıyordu, uzaktan Debian Jesse'yi çalıştırıyordu.


6

X11 protokolü, bir tcp portuyla konuşurken bir soketle konuşurken farklı mıdır?

Belki de ssh -R 6010:localhost:6000X11 verilerini port yönlendirme üzerine getirmek için kendi önerilen kullanımınızı birleştirebilir , ardından tcp portu ve X11 soket dinleyicisi arasındaki yerel gab'i nc ile köprüleyebilirsiniz:

nc -l -p 6000 > /tmp/.X11-unix/X0

Evet, fikir bu. Ama “bunu .ssh/configmüşteri tarafınıza ve bunu .profilesunucu tarafınıza koyun ve sonra sadece çalıştırın ssh B” diyen bir cevap bekliyordum .
Gilles 'SO- kötü olmayı bırak'

1
Kolay bir "Bunu yapılandırmak için koy" cevabı var, sorun soru yeterliliklerinizin dışına çıkmanızdır çünkü ihtiyacınız olan seçenek B üzerindeki şeylerin sshd_config tarafına gider. bir güvenlik sorununun yanlışlıkla açılmasını zorlaştırır.
Caleb

3
Yönetici umursamıyor ve sadece varsayılan ayarları yerinde bıraktı (benim deneyim çok yaygın) durumda hedefliyorum. X11 iletimi politika tarafından yasaklanmaz, yalnızca sistemadının kayıtsızlığı nedeniyle rahatsızlık verir. Her neyse X11 iletme, sunucunun istemciye saldırmasına izin verir, bu nedenle sunucu tarafının yasaklanması pek mantıklı değildir.
Gilles 'SO- kötü olmayı bırak'

@Gilles, varsayılanın faydalı herhangi bir şeye karşı gerçekten koruma sağlamadığını kabul ediyorum. Öyleyse varsayılan yukarı akış değiştirmeyi almak için lobi yapmalıyız?
Caleb

Benim için, /tmp/.X11-unix/X0bir unix etki alanı soketi, FIFO değil, bu yüzden herhangi bir yeniden yönlendirme girişimi ile bitiyor ENXIO: No such device.
Samveen

2
  1. Xephyr kullanarak ek bir X sunucusu döndürün. Bu güvenlik içindir - uzaktaki sistemin sizinkinden taviz vermesini önler.

  2. Uzaktaki bir soketi Xephyr soketine iletmek için SSH kullanın. SSH, Unix soketlerinin yönlendirilmesini de destekler.

  3. Uzak sunucudaki ortam değişkenlerini doğru ayarlayın.

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.