कुल मिलाकर, मैं सुझाता हूँ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 सत्र डिस्प्ले में लॉग से पूरी तरह से अलग है। इसलिए, पहले जीडीएम एक्स सत्र से कनेक्ट करना आवश्यक है, लॉगिन करें ... और अंत में नए शुरू किए गए एक्स सत्र से डिस्कनेक्ट और फिर से कनेक्ट करें। अब वे ऐसा क्यों करते हैं यह एक रहस्य है, लेकिन इसने इस स्क्रिप्ट के पुराने संस्करण को तोड़ दिया।