SSH के माध्यम से दूरस्थ डेस्कटॉप साझाकरण कैसे सेट करें?


44

वहाँ SSH के माध्यम से एक दूरस्थ डेस्कटॉप को देखने (और नियंत्रण) का एक तरीका है? मुझे दूरस्थ होस्ट मशीन तक भौतिक पहुंच नहीं होगी।


जवाबों:


51

विधि 1:

इसे vino vnc server & remmina के साथ हासिल किया जा सकता है (दोनों ही ubuntu के साथ डिफॉल्ट आते हैं; यदि इसे चलाकर इंस्टॉल नहीं किया गया है sudo apt-get install remmina)। टर्मिनल प्रॉम्प्ट में स्थानीय कंप्यूटर से निम्न आदेश चलाएँ:

  1. ssh -Y gman@remote। विश्वसनीय X11 अग्रेषण का उपयोग करें, अन्यथा यह काम नहीं करेगा

  2. vino-preferences। यह vino-वरीयताओं को खोलेगा।

    vino-वरीयता

  3. इसके अलावा क्लिक करें configure network automatically to accept connectionलेकिन किसी भी पासवर्ड को दर्ज न करें, इसका आधार 64 एनकोडेड है । फिर पास पर क्लिक करें। तो भागो:

    sudo -s
    
    export DISPLAY=:0.0
    
    xhost +
    
    /usr/lib/vino/vino-server & 
    

    यह vino सर्वर शुरू करेगा।

  4. सर्वर से लॉगआउट करें:

    xhost -
    
    Press CTRL+C twice
    
    exit
    
    exit
    
  5. फिर रेमिना को खोलें । vncप्रोटोकॉल के तहत चुनें ।

    क्षेत्र basicमें टैब पुट सर्वर एड्रेस के तहत server

    Ssh टैब पर क्लिक करें enable ssh tunnel। के तहत ssh authentication, यह passwordया हो सकता है public key:

    remmina-वरीयता

    Save पर क्लिक करें। और फिर दूरस्थ डेस्कटॉप ब्राउज़ करना शुरू करने के लिए कनेक्शन-नाम (चित्र में दिखाया गया होम-डेस्कटॉप) पर डबल क्लिक करें।


विधि 2:

x11vncएक साधारण VNC सर्वर है और आपको Gnome सेटिंग या 500 फ़ायरवॉल के साथ गड़बड़ नहीं करनी होगी, बस x11vncअपने सभी कंप्यूटर (कठपुतली के साथ या जो आप बड़े पैमाने पर नियंत्रण के लिए उपयोग कर रहे हैं) पर स्थापित करें।

फिर आपके स्थानीय कंप्यूटर से:

ssh user@host -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"

user@hostरिमोट कंप्यूटर के उपयोगकर्ता नाम और होस्टनाम / आईपी के लिए स्पष्ट रूप से स्वैपिंग ।

और फिर कनेक्ट करने के लिए अपनी पसंद के VNC क्लाइंट का उपयोग करें localhost:5900। SSH कमांड दूरस्थ कंप्यूटर पर vnc सर्वर शुरू करता है और फिर SSH के ऊपर उस पोर्ट को वापस सुरंग करता है। आपको किसी भी पोर्ट को खोलने की ज़रूरत नहीं है (जब तक आप पहले से ही एसएसएच कर सकते हैं)।

यदि आपके कंप्यूटर में मज़ेदार प्रदर्शन सेटिंग्स हैं, तो आप -display :0SSH कमांड में सेगमेंट को छोड़ने के लिए बेहतर कर सकते हैं । x11vncतब स्वतः ही सही प्रदर्शन खोजने का प्रयास करेगा।


स्रोत: आस्कुबंटु


यदि आप एक धीमी ssh कनेक्शन के साथ vncviewer का उपयोग कर रहे हैं, तो आपकी कमांड को दिखना चाहिए vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0(Debian / Ubuntu पर दर्शक कसैले से है) या vncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0(Red Hat / Fedora पर दर्शक tigervnc से है), जहां Debian और Redhat दोनों का गुणवत्ता स्तर है 0 और 9 के बीच, जहां 9 सबसे अच्छा है, लेकिन तेजी से कनेक्शन की आवश्यकता है।
एरिक

@erik यह बताने के लिए धन्यवाद कि इसे vncviewerधीमे कनेक्शन के साथ कैसे उपयोग किया जाए । मैं व्यक्तिगत रूप से, शायद सेट करूंगा QualityLevel=4 or 5क्योंकि 0 qualitylevel(जो है 256 colors, मुझे लगता है) मेरे लिए बहुत सुस्त है।
खुर्शीद आलम

1
आपकी "विधि 2" किसी भी विशेष स्थायी सेटिंग्स के बिना दूरस्थ रूप से भौतिक प्रदर्शन के त्वरित उपयोग के लिए एकदम सही है। जब मैंने कमांड निष्पादित किया था, तो त्रुटि संदेश में बताए गए -थाउथ पैरामीटर को जोड़ने की आवश्यकता थी, लेकिन अन्यथा पूरी तरह से काम करता है। धन्यवाद!
पियरे

@gerky विधि 3 NoMachine होगी, वर्तमान में सबसे तेज़ और मुफ्त है (ओपनसोर्स नहीं होने के बावजूद), और एंड्रॉइड पर भी काम करती है
कुंभ पावर

1
विधि 2 के लिए, मुझे -auth guessइसे रूट के रूप में उपयोग करना और चलाना था । बहुत मददगार, धन्यवाद!
बॉब कार्लसन

9

समाधान का अवलोकन

यह मानकर कि आपने पहले से ही OpenSSH Serverअपने होस्ट मशीन पर सेटअप कर लिया है , आपको पहले अपने होस्ट मशीन पर डेस्कटॉप नियंत्रण सक्षम करना होगा। यदि आप पहली बार स्थानीय रूप से अपने होस्ट मशीन पर डेस्कटॉप नियंत्रण को सक्षम कर सकते हैं, तो 1a पर जाएं। यदि आपको पहले अपने होस्ट मशीन पर डेस्कटॉप नियंत्रण को दूरस्थ रूप से सक्षम करना है, तो हेड टू 1 बी।

अगली बार SSH सुरंग के माध्यम से होस्ट मशीन से कनेक्ट करने के लिए अपने क्लाइंट मशीन पर एक दूरस्थ डेस्कटॉप क्लाइंट प्रोफ़ाइल बनाएं और अंततः SSH सुरंग के माध्यम से होस्ट मशीन के डेस्कटॉप को देखें और नियंत्रित करें।

1 क। स्थानीय रूप से होस्ट मशीन का रिमोट कंट्रोल सक्षम करें

मेजबान मशीन पर निम्न कार्य करें:

vino-preferences
  • vino-preferences के तहत भी पानी का छींटा Desktop Sharing

यहाँ छवि विवरण दर्ज करें

  1. टिकटिक Allow other users to view your desktop
  2. टिकटिक Allow other users to control your desktop
  3. टिकटिक Require the user to enter this password
  4. पासफ़्रेज़ का अनुमान लगाने में मुश्किल दर्ज करें
  5. बंद करे

1b। दूरस्थ रूप से होस्ट मशीन का रिमोट कंट्रोल सक्षम करें

क्लाइंट मशीन पर निम्नलिखित कार्य करें, 123.123.12.3अपने मेजबान मशीन के आईपी पते के साथ प्रतिस्थापित करें:

ssh -Y 123.123.12.3
  • -हाँ, X11 अग्रेषण को सक्षम करता है। विश्वसनीय X11 अग्रेषण X11 सुरक्षा विस्तार नियंत्रण के अधीन नहीं हैं।

vino-preferences
  • vino-preferences के तहत भी पानी का छींटा Desktop Sharing

यहाँ छवि विवरण दर्ज करें

  1. टिकटिक Allow other users to view your desktop
  2. टिकटिक Allow other users to control your desktop
  3. टिकटिक Require the user to enter this password
  4. पासफ़्रेज़ का अनुमान लगाने में मुश्किल दर्ज करें
  5. बंद करे

अपने क्लाइंट मशीन पर दूरस्थ डेस्कटॉप क्लाइंट प्रोफ़ाइल बनाएँ

ग्राहक मशीन पर निम्नलिखित कार्य करें:

remmina
  • रीमिना भी पानी के नीचे डैश में Remmina Remote Desktop Client

Ctrl+ Nया कनेक्शन> नया

यहाँ छवि विवरण दर्ज करें

  1. अपने आईपी पते को भरें [123.123.12.3] जहां यह कहता है Server
  2. SSHटैब पर स्विच करें

यहाँ छवि विवरण दर्ज करें

  1. टिकटिक Enable SSH Tunnel
  2. अपने डेस्कटॉप क्लाइंट को अपने गैर-मानक SSH पोर्ट पर इंगित करें
  3. अपना SSH Authentication <username>और मोड सेट करें
  4. जुडिये

होस्ट मशीन देखें और नियंत्रण करें

क्लाइंट मशीन पर, जब <username>पासवर्ड पूछा जाता है, तो इसे SSH सुरंग बनाने के लिए दर्ज करें। वीएनसी पासवर्ड के लिए पूछे जाने पर, पासफ़्रेज़ दर्ज करें जो आपने पहले होस्ट मशीन में दर्ज किया था।

यदि इस चरण में सफल होता है, तो आपको अब SSH सुरंग के माध्यम से अपने क्लाइंट मशीन से होस्ट मशीन के डेस्कटॉप को देखना और नियंत्रित करना चाहिए।


यह काफी व्यापक है, लेकिन मेजबान पर कस्टम पोर्ट 12345 को कहां परिभाषित किया गया है?
जॉन टी।

मैं अनुमान लगा रहा हूँ कि आपको क्लाइंट से कहीं ssh कमांड चलाने की ज़रूरत है, कुछ इस तरह: ssh -L 12345: localhost: 5900 user @ server_ip जैसा कि रिमोट क्लाइंट का उपयोग करने से पहले वर्णित है।
जॉन टी।

3

मैं एक नई उबंटू को स्थापित करने में सक्षम था 16.04 निम्नलिखित स्क्रिप्ट के साथ एक दूरस्थ ssh कनेक्शन से स्थापित करें:

#! / Bin / bash
निर्यात प्रदर्शन =: 0
read -e -p "VNC पासवर्ड:" -i "ubuntu" पासवर्ड
dconf लिखना / org / सूक्ति / डेस्कटॉप / रिमोट-एक्सेस / सक्षम सच
dconf लिखना / org / सूक्ति / डेस्कटॉप / रिमोट-एक्सेस / प्रॉम्प्ट-सक्षम गलत
dconf लिखना / org / सूक्ति / डेस्कटॉप / रिमोट-एक्सेस / प्रमाणीकरण-विधि "['vnc']"
dconf लिखना / org / सूक्ति / डेस्कटॉप / रिमोट-एक्सेस / आवश्यकता-एन्क्रिप्शन झूठा
dconf लिखना / org / सूक्ति / डेस्कटॉप / रिमोट-एक्सेस / vnc-password \ "\" $ (इको-एन $ पासवर्ड | base64) \ '\ "
dconf डंप / org / सूक्ति / डेस्कटॉप / रिमोट-एक्सेस /
sudo सेवा lightdm पुनरारंभ

किसी भी स्ट्रिंग सेटिंग के लिए उद्धरण महत्वपूर्ण है (उद्धरण के अंदर एकल टिक)। Dconf के लिए यह लिखने में सक्षम होने के लिए XWindows की पहुँच की आवश्यकता है, इसीलिए निर्यात प्रदर्शन भाग की आवश्यकता है। मुझे लगता है कि आपको इसके बाद भी वीएनसी से जुड़ने के लिए वास्तविक उबंटू मशीन पर डेस्कटॉप में लॉग इन करना होगा। डंप कमांड सिर्फ यह है कि सभी सेटिंग्स की पुष्टि करने के लिए, आपको वास्तव में इसकी आवश्यकता नहीं है।

वैकल्पिक रूप से आप ऐसा करना चाहते हैं यदि आप प्रदर्शन को हर समय बनाए रखना चाहते हैं:

dconf लिखना / org / सूक्ति / डेस्कटॉप / स्क्रीनसेवर / लॉक-सक्षम गलत
dconf लिखना / org / सूक्ति / डेस्कटॉप / स्क्रीनसेवर / ubuntu- लॉक-ऑन-सस्पेंड झूठा
dconf लिखना / org / सूक्ति / डेस्कटॉप / सत्र / निष्क्रिय-देरी "uint32 0"

2
  1. आप vnc सत्र शुरू करने के लिए ssh का उपयोग कर सकते हैं
  2. Xnestदूरस्थ रूप से सत्र प्रारंभ करने के लिए X11 के साथ प्रयोग करें और इसे अपने वर्तमान कंप्यूटर पर अग्रेषित करें। (मैं अपने पीआई के साथ समय-समय पर ऐसा करता हूं) मैन पेज

मैं ऐसा उपयोग करता हूं Xnest:

  • Xnest :1 -ac &
  • फिर DISPLAY=:1 . /etc/X11/Xsession

0

X अग्रेषित करने के लिए दूरस्थ रूप से Vino सर्वर कैसे शुरू करें (केवल कमांड लाइन-केवल)

दूरस्थ कंप्यूटर पर उस उपयोगकर्ता के रूप में लॉग ऑन करें जो स्थानीय डेस्कटॉप पर अपने डेस्कटॉप और फॉरवर्ड पोर्ट 5900 को उसी पोर्ट पर साझा करेगा। पुट्टी के साथ, रीडायरेक्शन कनेक्शन / एसएसएच / सुरंगों में सेट किया गया है। एक कमांड लाइन के साथ, उपयोग करें:

 ssh -L 5900:localhost:5900 user@remote-computer

स्थापित vino-serverकरता है, तो यह पहले से ही स्थापित नहीं है। उदाहरण के लिए:

sudo apt install vino

डेस्कटॉप साझाकरण सक्षम करें (पहली और दूसरी पंक्तियों पर प्रदर्शन संख्या मिलान):

echo $DISPLAY
export DISPLAY=:0
dbus-launch --exit-with-session gsettings set org.gnome.Vino enabled true
dbus-launch --exit-with-session gsettings set org.gnome.Vino prompt-enabled false
dbus-launch --exit-with-session gsettings set org.gnome.Vino require-encryption false
/usr/lib/vino/vino-server

VNC व्यूअर प्रारंभ करें और localhostVNC सर्वर पते के लिए कनेक्ट करें ।


निम्नलिखित मिला। लगता है कि यह सब आप पहले से ही एक जीयूआई कंसोल में लॉग इन कर रहे हैं मान लेता है? No protocol specified Failed to connect to Mir: Failed to connect to server socket: No such file or directory Unable to init server: Could not connect: Connection refused Cannot open display: Run 'vino-server --help' to see a full list of available command line options
शैवाल

0

@Khurshid आलम के उत्तर के आधार पर मैं निम्नलिखित स्निपेट प्रस्तुत करता हूं:

ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost

  • यह एक आदेश है जिसे किसी भी बातचीत की आवश्यकता नहीं है

  • यह पोर्ट फॉरवर्डिंग के साथ SSH सुरंग बनाता है, x11vncजो काफी सुरक्षित तरीके से शुरू होता है और VNC दर्शक को लॉन्च और जोड़ता है

  • यह लक्ष्य होस्ट पर x11vnc की आवश्यकता है, लेकिन आगे कोई कॉन्फ़िगरेशन नहीं

  • यह आपके पीसी पर vinagre की आवश्यकता है, लेकिन आप दूसरे VNC दर्शक के लिए इसे तुच्छ रूप से बदल सकते हैं

0

सर्वर में पीसी।

  • टर्मिनल से 'vino-वरीयताओं' को खोलें या डैश का उपयोग करके 'Desktop Sharing'।

vino-प्राथमिकताएँ

क्लाइंट पीसी में (जहां से आप सर्वर यूआई को नियंत्रित करना चाहते हैं)।

  • नीचे दी गई छवियों में दिखाए गए अनुसार सेटिंग्स रखें (उपयोगकर्ता नाम और आईपी के स्थान पर परिवर्तन)।

* मूल * टैब *उन्नत टैब * एसएसएच * टैब

नुकसान।

  • जब मैंने SSH का उपयोग करते हुए दूरस्थ पीसी से सर्वर में vino-वरीयताओं को सेट करने का प्रयास किया, तो यह बदल गया, लेकिन कनेक्शन नहीं हुआ। मुझे इसे सर्वर मशीन में सीधे (दूरस्थ रूप से नहीं) करना था। मैं इस व्यवहार का कारण नहीं जानता।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.