Bir ubuntu makinesine giriş ekranından VNC üzerinden nasıl erişilir?


17

Bir Ubuntu makinesine VNC üzerinden uzaktan erişmek istiyorum. Ancak Ubuntu makinesine yalnızca kullanıcı oturum açmışsa erişebilirim. Giriş ekranının kendisinden VNC üzerinden ubuntu makinesine erişmek istiyorum. Tüm Windows makinelerine giriş ekranından erişebiliriz. Ancak giriş ekranından Ubuntu makinesine erişemedik. Bir yolu var ama detayların farkında değilim. Birisi bu soruna bir çözüm verebilir mi?


Diğer makine aynı LAN üzerindeyse, VNC yerine XDMCP kullanmak mümkündür. Aynı LAN'da değilse, ağ üzerindeki hızlandırılmamış X çok yavaş olabilir.
Robin Green

Yanıtlar:


10

En iyi seçeneğiniz xrdp'yi yüklemektir Xrdp'yi yükle. Yüklemeden sonra, makineye bağlanmak için bir RDP istemcisi kullanabilirsiniz - daha sonra oturum açma ekranında olduğu gibi kimlik bilgileriniz istenir.


Ben xrdp yükledim ama yine de giriş ekranından ubuntu makineye erişemiyorum.
karthick87

@karthick: Makineye VNC ile mi bağlanıyorsunuz veya bir RDP istemcisi mi kullanıyorsunuz?
Nathan Osman

Makinemde RDP istemcisi bulamıyorum. Nerede bulunacak?
karthick87

@karthick: İstemciniz olarak Ubuntu mu kullanıyorsunuz? Öyleyse, kullanılacak program "Terminal Server Client" olarak adlandırılır. Windows'da buna "Uzak Masaüstü" IIRC denir.
Nathan Osman

Evet teşekkür ederim. Terminal Server İstemcisi için bir başlatıcı oluşturmak mümkün mü?
karthick87

5

Genel olarak, tavsiye ederimx11vnc .

TL; DR

apt-get -y install x11vnc
x11vnc -storepasswd

Şifrenizi girin, varsayılan ~/.vnc/passwd olarak INSECURE şifreli biçimde kaydedilir. Şifreyi çözebilir, çünkü anahtar bilinir. .. dosya sistemi izinleriyle koruyun)

chmod 600 ~/.vnc/passwd

Yardımcı betiğimi yerel olarak kaydet:

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 İstemci ana makinenizden:

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

Veya VNC Sunucusu ana makinenizden şunları çalıştırın:

~/bin/start_x11vnc.sh

bir terminal aracılığıyla (veya init.d servisi , sonradan başlatma hizmeti , systemd birimi veya istediğiniz -forevergibi kullanarak daemon olarak başlatın )

Şimdi VNC İstemcinizi Müşteri Ana Makinenizden çalıştırın, şu adrese yönlendirin:, 127.0.0.1:5900yukarıda kaydedilen şifre ile giriş yapın.

X11 "Sihirli Çerez" i kullanın

Çoğu X ekran yöneticisi ( GDM , XDM , KDM gibi ) ilk X11 sunucusunu başlatır ve MIT Magic Cookie ile kimlik doğrulaması yapar . Görüntü yöneticinize bağlı olarak, sihirli çerez çeşitli konumlardan birinde bulunur .

Ubuntu GDM giriş ekranında VNC oturumu açarken iyi şanslar yaşadım * NOT1 bu komut dosyasıyla sihirli çerezi bularak :

#!/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

Bu komut dosyasını ( start_x11vnc.shSSL ile) istediğim zaman başlatabilirim ... gdmgiriş ekranından bile giriş yapmadan önce . Daha x11vncsonra SSH tüneli üzerinden bağlanabileceğim bir sunucu başlatır . ( Ana makinenizin girişini kullanın ssh -L 5900:127.0.0.1:5900veya ekleyin ).LocalForward 5900 127.0.0.1:5900~/.ssh/config

NOT1 : Ubuntu> = 17.10 gibi bazı yeni dağıtım sürümlerinde, GDM oturum açma X oturum ekranı, oturum açmış olan kullanıcının X oturum ekranından tamamen ayrıdır. Bu nedenle, önce GDM X oturumuna bağlanmak, giriş yapmak ... ve son olarak yeni başlayan X oturumunun bağlantısını kesmek ve yeniden bağlanmak gerekir. Neden şimdi bu şekilde yapıyorlar bir sırdır, ama bu senaryonun eski versiyonunu bozdu.


Çalışmıyor. VNC istemcisi bağlanır ve hemen kapanır
Dims

@Dims Şu komutu kullanın:vncviewer <remote_ip>
Gokul NC

script yeni Ubuntu sürümleri için bozuldu ... Yeniden çalışmasını sağlamak için bir kesmek ile güncelledim. Görünüşe göre gdm görüntü oturumu artık oturum açılmış oturumdan ayrıdır, bu yüzden Ubuntu'da bu komut dosyasını kullanıyorsanız, önce GDM oturum açma ekranına götürürsünüz, daha sonra bu X oturumu ekranı boş kalır. Şimdi ilk x11vnc işlemini durdurmanız ve oturum açmış olan ayrı X oturumuna ve ekrana yeniden eklemek için komut dosyasını yeniden çalıştırmanız gerekir.
TrinitronX

2

VNC ssh uzak bağlantısı üzerinden GDM oturum açmayı etkinleştirmek için X11vnc ile deneyin. Ayrıca bu cevaba bakınız .


0

RDP kullanmak istemiyorsanız, VNC ile şu şekilde yapabilirsiniz:

  1. X11VNC sunucusunu kurun: sudo apt-get install x11vnc(Veya Ubuntu Yazılım Merkezi üzerinden -> X11VNC Sunucusu)
  2. Bir şifre belirleyin:

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

    yParolayı kaydetmeyi seçin .

  3. Boş bir dosya oluşturun /etc/initdenilen x11vnc.conf:

    sudo -H gedit /etc/init/x11vnc.conf
    
  4. Bunu dosyaya yapıştırın:

    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. Kaydet ve kapat

  6. Ubuntu'yu yeniden başlat

Bu kadar! Artık giriş yapmadan önce herhangi bir VNC istemcisine bağlanabilmeniz gerekir.


Bu işe yaramadı.
topuz

@mace İlginç, benim için çalıştı, belki de Ubuntu sürümüne bağımlı. Ne yazık ki, bu prosedürü yaptığımda Ubuntu'mun hangi versiyonunu hatırlamıyorum.
Didier A.

0

re: X11vnc ile deneyin

x11vnc 2011 Eylül ayından bu yana güncellenmedi !!!! Bilinen hatalar var ve oturumun bağlantısını kesen bir pop-up diyalog (herhangi bir pencerede 'dosya' menüsünü tıklamak gibi) her seferinde x11vnc'nin yığın parçalanmasını sonlandıran bir kişi tarafından patlatılıyorum.

Ahududu pi's masaüstü yöneticisi oturumuna bağlanabilir: 0, neden bu Ubuntu için böyle bir sorun?!?! Bunu herhangi bir modern işletim sisteminde yapmak için yetim, 7 yaşındaki bir programa neden ihtiyaç duyulmaktadır?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.