SSH पर X11 अग्रेषित करना यदि सर्वर कॉन्फ़िगरेशन इसकी अनुमति नहीं देता है


10

ऐसी स्थिति पर विचार करें जहां मैं मशीन ए से मशीन बी तक एसएसएच में प्रवेश कर रहा हूं, मेरे पास मशीन ए पर एक सत्र है, और मैं बी पर एक एक्स प्रोग्राम चलाना चाहता हूं।

ssh -X Bइस काम को पारदर्शी तरीके से करता है। लेकिन क्या होगा अगर सर्वर कॉन्फ़िगरेशन में कमी है X11Forwarding yes, मेरे पास सर्वर पर रूट अनुमति नहीं है, और सर्वर व्यवस्थापक उदासीन है?

यह स्पष्ट रूप से X11 कनेक्शन को अग्रेषित करना संभव है, क्योंकि मैं एसएसएच चैनल पर जो कुछ भी चाहता हूं उसे स्थानांतरित कर सकता हूं। वास्तव में, यदि स्थानीय एक्स सर्वर टीसीपी कनेक्शन की अनुमति देता है, तो यह उतना ही आसान है ssh -R 6010:localhost:6000(प्रदर्शन संख्याओं के लिए समायोजित किया जाना)। उस सामान्य मामले के बारे में जहां स्थानीय एक्स सर्वर केवल सॉकेट कनेक्शन की अनुमति देता है? मैं इंस्टॉलेशन आवश्यकताओं (विशेष रूप से बी पर) की न्यूनतम आवश्यकता के साथ एक्स को आसानी से और सुरक्षित रूप से अग्रेषित कैसे करूं?

जवाबों:


2

@ डेमी का जवाब अच्छा है लेकिन मुझे लगता है कि इसे भरने से बहुत मदद मिलेगी।

  • स्थानीय - स्थानीय मशीन एक Xserver की सेवा।
  • रिमोट - रिमोट मशीन जो एक्ससेवर में जाने वाले डेटा को ड्राइव करता है जो एप्लिकेशन को परोसता है

रिमोट /etc/ssh/sshd_config:

X11Forwarding no
X11DisplayOffset 10
X11UseLocalhost yes

रिमोट ~/.Xauthorityखाली है या मौजूद नहीं है

स्थानीय पर:

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

परीक्षण में, स्थानीय Ubuntu 18.05 चला रहा था, रिमोट डेबियन जेसी चला रहा था।


6

क्या प्रोटोकॉल X11 बोलता है जब किसी सॉकेट से बात करते समय tcp पोर्ट से कोई भिन्न होता है?

शायद आप ssh -R 6010:localhost:6000X11 डेटा को ओवर पोर्टिंग में लाने के लिए अपने खुद के सुझाए गए उपयोग को जोड़ सकते हैं , फिर tcp पोर्ट और X11 सॉकेट श्रोता के बीच nc जैसे:

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

हां, यही विचार है। लेकिन मैं यह कहते हुए जवाब की उम्मीद कर रहा था कि "यह आपके .ssh/configक्लाइंट-साइड में है और आपके .profileसर्वर-साइड में है, और फिर बस चलाएं ssh B"।
गिल्स एसओ- बुराई को रोकें '

1
एक आसान "इसे अपने कॉन्फ़िगरेशन में डाल दें" उत्तर है, समस्या यह है कि आप अपने प्रश्न योग्यता में नियम से बाहर हैं क्योंकि आपको जिस विकल्प की आवश्यकता है वह बी पर चीजों के sshd_config पक्ष में जाता है। आप एक ब्लॉक के आसपास काम करने की कोशिश कर रहे हैं। अनजाने में एक सुरक्षा मुद्दे को खोलना कठिन बनाने के लिए जगह।
कालेब

3
मैं (मेरे अनुभव में बहुत सामान्य) मामले को लक्षित कर रहा हूं जहां व्यवस्थापक परवाह नहीं करता है और बस डिफ़ॉल्ट सेटिंग्स को जगह में छोड़ देता है। X11 अग्रेषण को नीति द्वारा प्रतिबंधित नहीं किया गया है, यह केवल sysadmin उदासीनता से असुविधा है। वैसे भी X11 अग्रेषण सर्वर को क्लाइंट पर हमला करने की अनुमति देता है, इसलिए इसे सर्वर-साइड पर प्रतिबंध लगाने का कोई मतलब नहीं है।
गिल्स एसओ- बुराई को रोकें '

@ मैं सहमत हूँ डिफ़ॉल्ट वास्तव में उपयोगी कुछ के खिलाफ की रक्षा नहीं करता है। तो क्या हमें डिफ़ॉल्ट रूप से परिवर्तित अपस्ट्रीम प्राप्त करने के लिए पैरवी करनी चाहिए?
कालेब

मेरे लिए, /tmp/.X11-unix/X0एक यूनिक्स डोमेन सॉकेट है, एफआईएफओ नहीं है, इसलिए किसी भी पुनर्निर्देशन का प्रयास समाप्त होता है ENXIO: No such device
सामवेन

2
  1. Xephyr का उपयोग करके एक अतिरिक्त X सर्वर को स्पिन करें। यह सुरक्षा के लिए है - यह रिमोट सिस्टम को आपके साथ समझौता करने से रोकता है।

  2. XHhyr सॉकेट के लिए दूरस्थ सॉकेट को अग्रेषित करने के लिए SSH का उपयोग करें। SSH Unix सॉकेट्स को भी अग्रेषित करने का समर्थन करता है।

  3. रिमोट सर्वर पर पर्यावरण चर को सही ढंग से सेट करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.