लॉगिन स्क्रीन से VNC के माध्यम से एक ubuntu मशीन का उपयोग कैसे करें?


17

मैं वीएनसी के माध्यम से दूर से एक उबंटू मशीन का उपयोग करना चाहता हूं। लेकिन मैं उबंटू मशीन का उपयोग केवल तभी कर सकता हूं जब उपयोगकर्ता लॉग इन हो। मैं ubuntu मशीन को वीएनसी के माध्यम से लॉगिन स्क्रीन से ही एक्सेस करना चाहता हूं। हम लॉगिन स्क्रीन से सभी विंडोज़ मशीनों तक पहुँच सकते हैं। हालाँकि हम लॉगिन स्क्रीन से उबंटू मशीन तक पहुँचने में सक्षम नहीं थे। कोई रास्ता है लेकिन मुझे विवरणों के बारे में पता नहीं है। क्या कोई इस समस्या का समाधान दे सकता है?


यदि दूसरी मशीन उसी LAN पर है तो VNC के बजाय XDMCP का उपयोग करना संभव होगा। यदि यह एक ही LAN पर नहीं है, तो नेटवर्क पर अनैतिक रूप से X बहुत धीमा हो सकता है।
रॉबिन ग्रीन

जवाबों:


10

आपका सबसे अच्छा शर्त xrdp स्थापित करना हैXrdp स्थापित करें । स्थापना के बाद, आप मशीन से कनेक्ट करने के लिए एक आरडीपी क्लाइंट का उपयोग कर सकते हैं - फिर आपको अपने क्रेडेंशियल के लिए संकेत दिया जाएगा क्योंकि आप लॉगिन स्क्रीन पर होंगे।


मैंने xrdp स्थापित किया है, लेकिन फिर भी मैं लॉगिन स्क्रीन से ubuntu मशीन का उपयोग करने में असमर्थ हूं।
karthick87

@karthick: क्या आप VNC के साथ मशीन से जुड़ रहे हैं या RDP क्लाइंट का उपयोग कर रहे हैं?
नाथन उस्मान

मुझे अपनी मशीन में RDP क्लाइंट नहीं मिला। यह कहाँ स्थित होगा?
karthick87

@karthick: क्या आप उबंटू को अपने ग्राहक के रूप में इस्तेमाल कर रहे हैं? यदि ऐसा है, तो उपयोग करने के लिए प्रोग्राम को "टर्मिनल सर्वर क्लाइंट" कहा जाता है। विंडोज पर, इसे "रिमोट डेस्कटॉप" IIRC कहा जाता है।
नाथन उस्मान

हां धन्यवाद। क्या टर्मिनल सर्वर क्लाइंट के लिए लॉन्चर बनाना संभव है?
karthick87

5

कुल मिलाकर, मैं सुझाता हूँx11vnc

टी एल; डॉ

apt-get -y install x11vnc
x11vnc -storepasswd

अपना पासवर्ड दर्ज करें, यह ~/.vnc/passwd INSECURE एन्क्रिप्टेड रूप में डिफ़ॉल्ट रूप से सहेजा गया है यह डिक्रिप्ट किया जा सकता है क्योंकि कुंजी ज्ञात है। .. इसे फाइलसिस्टम अनुमतियों के साथ सुरक्षित रखें)

chmod 600 ~/.vnc/passwd

मेरी सहायक स्क्रिप्ट को स्थानीय रूप से सहेजें:

mkdir ~/bin/
curl https://gist.githubusercontent.com/trinitronx/76d2bf98489e5e3e84fa/raw/53885d87f91320b574ca4f7d609e4bb268274f68/start_x11vnc.sh  > ~/bin/start_x11vnc.sh && chmod +x ~/bin/start_x11vnc.sh

आपके VNC क्लाइंट होस्ट से:

ssh -f  -L 5900:127.0.0.1:5900 -p 22 youruser@your-ubuntu-host.example.com '~/bin/start_x11vnc.sh && sleep 10'

या, अपने VNC सर्वर होस्ट से, चलाएँ:

~/bin/start_x11vnc.sh

एक टर्मिनल के माध्यम से (या इसे -foreverएक init.d सेवा के रूप में डेमॉन के रूप में शुरू करें , अपस्टार्ट सेवा , सिस्टमड यूनिट , या आप जो चाहते हैं)

अब अपने क्लाइंट होस्ट से अपनी पसंद का VNC क्लाइंट चलाएं, इसे इंगित करें: 127.0.0.1:5900ऊपर दिए गए पासवर्ड से लॉगिन करें।

X11 "मैजिक कुकी" का उपयोग करें

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

मुझे उबंटू जीडीएम लॉगिन स्क्रीन * NOTE1 पर VNC सत्र खोलने का सौभाग्य मिला है, इस स्क्रिप्ट के साथ मैजिक कुकी ढूंढ कर :

#!/bin/bash
DEFAULT_DISPLAY=:0
X11VNC_DISPLAY="$DEFAULT_DISPLAY"

if [ -x /usr/bin/x11vnc ]; then
     [ "$1" == '-nocache' ] && CACHE_FLAG='-noncache' || CACHE_FLAG='-noncache'
     [ "$2" == '-guess' ] && GUESS_FLAG='-auth guess' || GUESS_FLAG=''
         [ -f /root/.vnc/passwd ] && PASSWORD="/root/.vnc/passwd"
         [ -f $HOME/.vnc/passwd ] && PASSWORD="$HOME/.vnc/passwd"
         [ ! -z "$PASSWORD" ] && x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage
    EXIT_CODE=$?
     if [ $EXIT_CODE -ne 0 ]; then

        echo "\n*********************************************************************"
        echo "*** Could not start x11vnc!  Trying again with gdm MAGIC_COOKIE! ***"
        echo "*********************************************************************\n"

        # Old GDM location for Ubuntu <= 17.10
        MAGIC_COOKIE_FILE=`sudo find /var/run/gdm/ -iname database | grep for-gdm`

        # New GDM location for Ubuntu >= 17.10
        [ -z "$MAGIC_COOKIE_FILE" ] && NUM_MAGIC_COOKIE_FILE_SESSIONS=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' 2>/dev/null | wc -l`
        if [ -z "$MAGIC_COOKIE_FILE" -a "$NUM_MAGIC_COOKIE_FILE_SESSIONS" -gt 1 ]; then
            # Find the current user's session
            MAGIC_COOKIE_FILE=`sudo find /run/user/$(id -u) -iwholename '*/gdm/*' -iname '*Xauthority'`
            X11VNC_DISPLAY=":1"
        else
            # Find the GDM user's session (or whichever shows up first in ps list)
            # This should pick up the original gdm session which grabs :0
            # If you login after gdm login screen, your Xorg server may end up on another display!
            # Workaround for now is to restart x11vnc on that display number
            [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' | head -n1`
        fi
        # Old lightdm location for Ubuntu <= 17.10
        [ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE=`sudo find /var/lib -name '.Xauthority' -o -wholename '/var/run/lightdm/root/:0' | head -n1`
        #sudo bash -c "[ -z \"$MAGIC_COOKIE_FILE\" -a -e /var/run/lightdm/root/:0 ]" && MAGIC_COOKIE_FILE='/var/run/lightdm/root/:0'
        [ -n "$MAGIC_COOKIE_FILE" -a -z "$GUESS_FLAG" ] && AUTH_COOKIE_FLAG="-auth $MAGIC_COOKIE_FILE"
        [ ! -z "$PASSWORD" ] && sudo x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage ${AUTH_COOKIE_FLAG}
    fi
fi

मैं इस स्क्रिप्ट को शुरू कर सकता हूं (मैंने इसे कहा था start_x11vnc.sh) एसएसएच के माध्यम से कभी भी ... gdmलॉगिन स्क्रीन के माध्यम से लॉगिन करने से पहले भी । यह एक x11vncसर्वर लॉन्च करता है जिसे मैं बाद में SSH टनल से कनेक्ट कर सकता हूं । (का उपयोग करें ssh -L 5900:127.0.0.1:5900या LocalForward 5900 127.0.0.1:5900अपने मेजबान की प्रविष्टि में जोड़ें ~/.ssh/config)।

NOTE1 : कुछ नए डिस्ट्रो रिलीज़ जैसे कि Ubuntu> = 17.10 में, GDM लॉगिन X सत्र प्रदर्शन उपयोगकर्ता के X सत्र डिस्प्ले में लॉग से पूरी तरह से अलग है। इसलिए, पहले जीडीएम एक्स सत्र से कनेक्ट करना आवश्यक है, लॉगिन करें ... और अंत में नए शुरू किए गए एक्स सत्र से डिस्कनेक्ट और फिर से कनेक्ट करें। अब वे ऐसा क्यों करते हैं यह एक रहस्य है, लेकिन इसने इस स्क्रिप्ट के पुराने संस्करण को तोड़ दिया।


काम नहीं करता। VNC क्लाइंट कनेक्ट होता है तो तुरंत बंद हो जाता है
Dims

@ डीम्स कमांड का उपयोग करें:vncviewer <remote_ip>
गोकुल एनसी

उबंटू के नए संस्करणों के लिए स्क्रिप्ट को तोड़ दिया गया ... मैंने इसे फिर से काम करने के लिए सक्षम करने के लिए एक हैक के साथ अपडेट किया। अब ऐसा लगता है कि जीडीएम डिस्प्ले सत्र अब लॉग इन सत्र से अलग है, इसलिए यदि आप उबंटू पर इस स्क्रिप्ट का उपयोग कर रहे हैं, तो यह आपको पहले जीडीएम लॉगिन स्क्रीन पर ले जाएगा, फिर जब आप लॉगिन करते हैं तो यह एक्स सत्र डिस्प्ले रिक्त हो जाता है। अब आपको पहले x11vnc प्रक्रिया को रोकने और स्क्रिप्ट को फिर से एक्स-सत्र और प्रदर्शन में अलग लॉग में संलग्न करने के लिए फिर से चलाने की आवश्यकता है।
ट्रिनिट्रॉनएक्स

2

एक VNC ssh रिमोट कनेक्शन पर GDM लॉगिन को सक्षम करने के लिए X11vnc के साथ प्रयास करें। इस उत्तर को भी देखें ।


0

यहाँ VNC के साथ कैसे करना है, यदि आप RDP का उपयोग नहीं करना चाहते हैं:

  1. X11VNC सर्वर स्थापित करें: sudo apt-get install x11vnc (या Ubuntu सॉफ्टवेयर सेंटर के माध्यम से -> X11VNC सर्वर)
  2. एक पासवर्ड सेट करें:

    sudo mkdir /etc/x11vnc
    sudo x11vnc -storepasswd /etc/x11vnc/passwd
    

    चुनें yपासवर्ड बचाने के लिए ।

  3. /etc/initनामक एक खाली फ़ाइल बनाएँ x11vnc.conf:

    sudo -H gedit /etc/init/x11vnc.conf
    
  4. इसे फ़ाइल में पेस्ट करें:

    start on login-session-start
    
    exec x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc/passwd -rfbport 5900 -bg -o /var/log/x11vnc.log
    
  5. सहेजें और बंद करें

  6. Ubuntu को पुनरारंभ करें

बस! अब आपको लॉगिन करने से पहले ही किसी भी VNC क्लाइंट से जुड़ने में सक्षम होना चाहिए।


यह काम नहीं किया।
गदा

@ मीस दिलचस्प, इसने मेरे लिए काम किया था, शायद यह उबंटू संस्करण पर निर्भर था। दुर्भाग्य से, मुझे याद नहीं है कि जब मैंने इस प्रक्रिया को किया था तब मेरा उबंटू कौन सा संस्करण था।
डिडिएर ए।

0

पुन: X11vnc के साथ प्रयास करें

2011 के सितम्बर से x11vnc अपडेट नहीं किया गया है !!!! ज्ञात बग्स हैं और मैं एक-एक करके पॉपअप हो रहा हूं जो किसी भी समय पॉप-अप संवाद (जैसे कि किसी भी विंडो पर 'फ़ाइल' मेनू पर क्लिक करना) सत्र को डिस्कनेक्ट करके स्टैक स्मैश समाप्ति को ट्रिगर करता है।

रास्पबेरी पाई का डेस्कटॉप मैनेजर सेशन से कनेक्ट हो सकता है: 0, क्यों उबंटू के लिए इस तरह की समस्या है?!? किसी भी आधुनिक ऑपरेटिंग सिस्टम पर ऐसा करने के लिए एक अनाथ, 7 साल पुराने कार्यक्रम पर भरोसा करना क्यों आवश्यक है?

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