Ssh-x के साथ रिमोट एक्स-सर्वर


12

मैं एक दूरस्थ सूक्ति सत्र शुरू करने की कोशिश कर रहा हूं: ssh -X username@192.168.1.107 gnome-session

क्लाइंट और सर्वर दोनों Ubuntu संस्करण 12.04 हैं

मुझे निम्नलिखित मिलता है (और बहुत कुछ नहीं होता है) ...

GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
GNOME_KEYRING_PID=3573
GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
SSH_AUTH_SOCK=/tmp/keyring-3aeNAh/ssh
GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
SSH_AUTH_SOCK=/tmp/keyring-3aeNAh/ssh

(gnome-settings-daemon:3572): color-plugin-WARNING **: failed to get contents of /sys/class/dmi/id/board_version: Failed to open file '/sys/class/dmi/id/board_version': No such file or directory

** (gnome-settings-daemon:3572): WARNING **: You can only run one xsettings manager at a time; exiting

** (gnome-settings-daemon:3572): WARNING **: Unable to start xsettings manager: Could not initialize xsettings manager.
compiz (core) - Error: Screen 0 on display "localhost:10.0" already has a window manager; try using the --replace option to replace the current window manager.
Initializing nautilus-gdu extension
Created new window in existing browser session.
** Message: applet now removed from the notification area
** Message: using fallback from indicator to GtkStatusIcon

(gnome-settings-daemon:3572): keyboard-plugin-WARNING **: Failed to set the keyboard layouts: GDBus.Error:org.freedesktop.Accounts.Error.PermissionDenied: Not authorized

** (gnome-settings-daemon:3572): WARNING **: Failed to connect context: Connection refused

(gnome-settings-daemon:3572): clipboard-plugin-WARNING **: Clipboard manager is already running.

(gnome-settings-daemon:3572): color-plugin-WARNING **: failed to create device: GDBus.Error:org.freedesktop.ColorManager.Failed: failed to obtain org.freedesktop.color-manager.create-device auth

(gnome-settings-daemon:3572): color-plugin-WARNING **: GDBus.Error:org.freedesktop.ColorManager.Failed: failed to obtain org.freedesktop.color-manager.create-profile auth

(gnome-settings-daemon:3572): color-plugin-WARNING **: no xrandr-Samsung Electric Company-SAMSUNG device found: Failed to find output xrandr-Samsung Electric Company-SAMSUNG
Shutting down nautilus-gdu extension

** (gnome-settings-daemon:3572): WARNING **: Failed to connect context: Connection refused
Connection failure: Connection refused
pa_context_connect() failed: Connection refused

मैं रिमोट सर्वर के प्रदर्शन पर क्या होता है, इसे बदले बिना एक मीडिया सर्वर / खिलाड़ी के रूप में उपयोग किए जाने वाले उबंटू मशीन का उपयोग करना चाहता था। इसके अलावा मैं सिर्फ इस सामान के साथ खेलना चाहता था कि यह क्या कर सकता है। :-)
बेनेडल

1
यदि आप चारों ओर खेलना चाहते हैं, तो मैंने कमांडलाइन से मूल ssh का उपयोग करने के लिए कुछ युक्तियों के साथ एक उत्तर दिया, जिसमें एक कुंजी उत्पन्न करना और इसे दूरस्थ होस्ट पर कॉपी करना शामिल है। एक बार जब आप ssh का उपयोग करना सीख जाते हैं, तो आपको यह जानकर आश्चर्य हो सकता है कि इसका उपयोग कितना किया जा सकता है।
मार्टी फ्राइड

जवाबों:


12

मुझे लगता है कि आप जो करने की कोशिश कर रहे हैं वह आपके स्थानीय मशीन पर प्रदर्शित होने वाला एक पूर्ण सुदूर सूक्ति सत्र शुरू करना है। यह विफल हो जाता है क्योंकि आपके पास पहले से ही एक स्थानीय सत्र प्रबंधक है जो आपके एक्स सर्वर डिस्प्ले को नियंत्रित करता है।

आपके विकल्प हैं:

  1. बस का उपयोग कर व्यक्तिगत दूरस्थ अनुप्रयोगों शुरू करते हैं ssh -X user@192.168.1.107 xclock

  2. दूरस्थ मशीन पर सक्षम XDMCP मान लिया गया है ...

    2 ए। Xnest -query 192.168.1.107 -geometry 1024x768 :1एक स्थानीय विंडो में एक दूरस्थ लॉगिन सत्र शुरू करने के लिए उपयोग करें ।

    2 बी। उपयोग करें Xephyr :1 -screen 1024x768 -query 192.168.1.107जो एक बेहतर X सर्वर हैXnest

  3. दूरस्थ मशीन पर XDMCP मानकर, स्टार्टअप पर मानक अभिवादनकर्ता के बजाय XDMCP चयनकर्ता का उपयोग करने के लिए अपनी स्थानीय मशीन को कॉन्फ़िगर करें।

XDMCP को सक्षम करना केवल डालने का एक मामला है

[xdmcp]
Enable=true

में /etc/gdm/custom.confऔर पुनः आरंभ gdmया रिबूट करना (यह मानते हुए कि आप चल रहे हैं gdm)।

यदि आप केवल कुछ एप्लिकेशन को दूरस्थ रूप से चलाने का इरादा रखते हैं, तो विकल्प 1 सबसे सरल है और SSH एन्क्रिप्टेड ट्रैफ़िक का उपयोग करना जारी रखता है, जो अन्य कोई भी नहीं करता है (इसलिए वे केवल एक विश्वसनीय स्थानीय नेटवर्क पर उपयोग किए जाते हैं)।

यदि आपको कुछ अधिक जटिल करने की आवश्यकता है, तो 2 बी (ज़ेफायर) बेहतर हो सकता है, लेकिन मैंने आमतौर पर ssh -X ... &पर्याप्त होने के लिए कई दूरस्थ अनुप्रयोगों का उपयोग करने के लिए पाया है ।

यदि आप सब कुछ दूरस्थ रूप से कर रहे हैं, अर्थात स्थानीय मशीन केवल एक प्रदर्शन सर्वर है और स्वयं कुछ भी नहीं करता है, तो आपको मानक लॉगिन के बजाय XDMCP चयनकर्ता को शुरू करने के लिए विकल्प 3 का उपयोग करने की आवश्यकता है।


पुनश्च: के रूप में टिप्पणी में बताया गया है, दोनों Xnestऔर Xephyrअनुप्रयोगों जो एक्स सर्वर प्रोटोकॉल संभाल रहे हैं और एक विंडो में पूरे सत्र डाल दिया। Xnestस्थानीय एक्स सर्वर द्वारा प्रदान किए गए कार्यों का उपयोग करता है, जबकि Xephyrसर्वर प्रोटोकॉल के बहुत अधिक संभालता है इसलिए यह अधिक मजबूत है। वे डिफ़ॉल्ट रूप से इंस्टॉल नहीं हो सकते क्योंकि औसत उपयोगकर्ता उनका उपयोग नहीं करेगा।


PPS: थोड़ा विचार करने के बाद यह स्पष्ट है कि एक Xephyrया Xnestसत्र को कैसे एन्क्रिप्ट किया जाए ...

ssh -X username@192.168.1.107 Xephyr :1 -query localhost -screen 1280x1024

1
यह इंगित करने के लिए उपयोगी हो सकता है कि Xnest / Xephyr क्या और क्यों, क्योंकि वे डिफ़ॉल्ट रूप से स्थापित नहीं हैं, मुझे नहीं लगता। मुझे कभी भी xdmcp का उपयोग करने की कोई आवश्यकता नहीं मिली है, इसलिए मुझे खुद नहीं पता है। मैं ssh -Yएक टर्मिनल से सरल का उपयोग करता हूं , फिर वहां से जो मुझे चाहिए उसे चलाएं।
मार्टी फ्राइड

@MartyFried: ऐसा लगता है कि दोनों एक्स सर्वर हैं जो एक विंडो में चल सकते हैं। ऐसा लगता है कि उपयोगकर्ता पूरे सत्र / प्रदर्शन को एक्स-फॉरवर्ड करना चाहता है। व्यक्तिगत रूप से मैं सिर्फ VNC का उपयोग करूंगा, जो मौजूदा X सर्वर पर एक नया डिस्प्ले बनाता है और खुद को सिरदर्द से बचाता है।
ish

@izx: मैंने विंडोज सिस्टम के लिए अतीत में VNC का उपयोग किया है, लेकिन दो उबंटू प्रणालियों के साथ, मैं आमतौर पर बिल्ट-इन ssh को पसंद करता हूं, हालांकि कभी-कभी मैं GUI ऐप चलाते समय भ्रमित हो जाता हूं, क्योंकि यह स्थानीय बनाम दूरस्थ ऐप्स को अलग करना मुश्किल है। लेकिन जो मैं करता हूं (ज्यादातर एक सर्वर से संपादन या प्रशासन), यह सबसे अच्छा काम करता है।
मार्टी फ्राइड

1
@MartyFried VNC का नकारात्मक पक्ष यह है कि आप बस रिमोट मशीन के डिस्प्ले को नियंत्रित कर रहे हैं। तो आप उस उपयोगकर्ता को दूरस्थ रूप से कनेक्ट किए गए किसी अन्य उपयोगकर्ता के साथ लॉग इन नहीं कर सकते। XDMCP समाधान 2 या अधिक उपयोगकर्ताओं को एक ही मशीन का उपयोग करने की अनुमति देते हुए पूरी तरह से अलग सत्रों को क्रेट करते हैं।
StarNamer

आपके 2 बी समाधान ने एक इलाज किया। मैंने ssh संस्करण की कोशिश की, लेकिन ssh कुंजी के बारे में एक मुद्दा था। संदेश यहां पोस्ट करने के लिए बहुत लंबा है। मैं उस विधि का उपयोग करूंगा जो अभी काम करती है।
बेलाडल

0

यदि आप कभी भी टर्मिनल से ssh का उपयोग करना सीखना चाहते हैं, तो मैंने सोचा कि मैं आपको एक त्वरित मार्ग प्रदान करूँगा, क्योंकि आपको ssh कीज़ का उपयोग करने में परेशानी हुई थी, ऐसा लगता है। लाभ यह है कि यह अधिक सार्वभौमिक है, और बहुत लचीला है।

Ssh कुंजियों का उपयोग करने के लिए, जो कि अधिक सुरक्षित, कभी-कभी आवश्यक है, और अधिक सुविधाजनक है क्योंकि आपको केवल एक बार कुंजी दर्ज करने की आवश्यकता है, आपको किसी भी दूरस्थ ssh सर्वर के लिए एक बार ऐसा करने की आवश्यकता है:

कुंजी उत्पन्न करें (यदि आवश्यक हो तो rsa के बजाय dsa का उपयोग कर सकते हैं)

ssh-keygen -t rsa    

दूरस्थ होस्ट के लिए कुंजी स्थानांतरण

ssh-copy-id <username>@<host>

यदि मानक पोर्ट 22 नहीं है, तो इसका उपयोग करें: नोट तर्क के आसपास उद्धरण

ssh-copy-id "<username>@<host> -p <port_nr>"

यदि डीएसए का उपयोग किया जाता है, तो थोड़ा अलग कमांड होता है, जोड़ना -i <homedirectory>/.ssh/id_dsa

इसके कुछ समय बाद, आपको एक पासवर्ड दर्ज करना होगा, जो आपके सामान्य लॉगिन पासवर्ड से अलग है। यह एक समय हो गया है, और मैं सटीक अनुक्रम भूल गया हूं, लेकिन यह स्पष्ट होना चाहिए। फिर, पहली बार जब आप कनेक्ट करते हैं, तो आपसे इस पासवर्ड के लिए पूछा जाएगा, एक बार। मैं उसी लॉगिन नाम का उपयोग करता हूं, इसलिए मुझे उपयोगकर्ता नाम दर्ज करने की आवश्यकता नहीं है (यह दूरस्थ उपयोगकर्ता नाम के समान है)। इसके अलावा, अपने लैन पर सर्वर के लिए, आप आईपी पते के बजाय ".local" दर्ज कर सकते हैं, मेरा मानना ​​है कि (मेरे लिए काम करता है)।

आप भी sshfs का उपयोग करके एक दूरस्थ फाइल सिस्टम को माउंट कर सकते हैं (sshfs स्थापित है); स्थान-माउंट-निर्देशिका के लिए निर्देशिका पथ का विकल्प:

sshfs remote-host: local-mount-directory

(का उपयोग करते हुए अनमाउंट fusermount -u local-mount-directory)

मुझे लगता है कि यह आपके होम डायरेक्टरी को डिफ़ॉल्ट रूप से उपयोग करेगा, यदि आप लोकल-माउंट-डायरेक्टरी को छोड़ देते हैं। `

फाइल को कॉपी करके स्केप से किया जा सकता है।

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