Uzak masaüstü paylaşımı SSH ile nasıl kurulur?


Yanıtlar:


51

Yöntem 1 :

Bu vino vnc server ve remmina ile elde edilebilir (her ikisi de varsayılan olarak ubuntu ile gelir; çalıştırılarak kurulmazsa sudo apt-get install remmina). Ardından yerel bilgisayardan aşağıdaki komutları terminal isteminde çalıştırın:

  1. ssh -Y gman@remote. Güvenilir X11 iletmeyi kullanın, aksi takdirde çalışmaz

  2. vino-preferences. Vino-tercihlerini açacak.

    vino-tercihi

  3. Ayrıca tıklayın configure network automatically to accept connection. Ancak hiçbir şifre girmeyin, base64 şifreli . Sonra kapat'ı tıklayın. O zaman koş:

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

    Vino sunucusunu başlatacak.

  4. Sunucudan çıkış yap:

    xhost -
    
    Press CTRL+C twice
    
    exit
    
    exit
    
  5. Ardından remmina'yı açın . vncProtokol altında seçin .

    basicSekme altındaki sunucu adresini serveralana girin.

    Ssh sekmesinde tıklayın enable ssh tunnel. Altında ssh authenticationolabilir passwordveya public key:

    remmina-tercihi

    Kaydet düğmesine tıklayın. Daha sonra uzak masaüstüne göz atmaya başlamak için bağlantı adına (resimde gösterildiği gibi ev-masaüstü) çift tıklayın.


Yöntem 2:

x11vncbasit bir VNC sunucusudur ve Gnome ayarları veya 500 güvenlik duvarı ile uğraşmanıza gerek kalmaz, sadece x11vnctüm bilgisayarlara yükleyin (kuklalı veya kitle kontrolü için ne kullanıyorsanız kullanın).

Sonra yerel bilgisayarınızdan çalıştırın:

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

Açıkça user@hostuzaktaki bilgisayarın kullanıcı adı ve ana bilgisayar adı / IP'si ile değiştiriliyor.

Ve sonra bağlanmak için seçtiğiniz bir VNC istemcisi kullanın localhost:5900. SSH komutu uzak bilgisayardaki bir vnc sunucusunu başlatır ve ardından bu bağlantı noktasını SSH üzerinden geri tüneller. Herhangi bir port açmak zorunda değilsiniz (zaten SSH yapabildiğiniz sürece).

Bilgisayarlarınızda komik ekran ayarları varsa -display :0, SSH komutunda segmentten ayrılmak daha iyi olabilir . x11vncotomatik olarak doğru ekranı bulmaya çalışacaktır.


Kaynak: askubuntu


Yavaş ssh bağlantısı olan bir vncviewer kullanıyorsanız, komutunuz şu şekilde görünmelidir vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0(Debian / Ubuntu'da görüntüleyici, sıkı sıkıya göre) veya vncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0(Red Hat / Fedora'da izleyici, tigervnc'den), hem Debian hem de Redhat'taki kalite seviyesinin 0 ile 9 arasında, 9 en iyisidir, ancak hızlı bağlantı gerektirir.
erik

@ erik vncviewerYavaş bağlantı için nasıl kullanılacağını açıkladığınız için teşekkür ederiz . Ben şahsen, muhtemelen koyacağım QualityLevel=4 or 5çünkü 0 qualitylevel(ki 256 colorssanırım) benim için çok sıkıcı.
Khurshid Alam

1
"Metod 2" iniz, özel kalıcı ayarlar olmadan uzaktan fiziksel ekrana hızlı erişim için mükemmeldir. Komutu çalıştırdığımda hata mesajında ​​açıklandığı gibi -auth parametresini eklemem gerekiyordu, aksi halde mükemmel çalışıyor. Teşekkürler!
Pierre,

@gerky yöntemi 3, NoMachine olur, şu anda en hızlı ve ücretsizdir (açık kaynak olmamasına rağmen) ve android üzerinde de çalışır
Kova Gücü

1
Yöntem 2 için, onu kullanmak -auth guessve kök olarak çalıştırmak zorunda kaldı . Çok yararlı, teşekkürler!
Bob Carlson,

9

Çözüme Genel Bakış

OpenSSH ServerAna makinenize bir kurulum kurduğunuzu varsayarsak, önce ana makinenizde masaüstü kontrolünü etkinleştirmelisiniz. Ana makinenizde masaüstü denetimini önce yerel olarak etkinleştirebiliyorsanız, 1a'ya gidin. İlk önce ana makinenizde masaüstü kontrolünü uzaktan etkinleştirmeniz gerekiyorsa, 1b'ye gidin.

Ardından, ana makineye bir SSH tüneli üzerinden bağlanmak ve sonunda ana makinenin masaüstünü bir SSH tüneli üzerinden görüntülemek ve kontrol etmek için istemci makinenizde bir Uzak Masaüstü İstemcisi profili oluşturun.

1 A. Ana Makinenin Uzaktan Kumandasını Yerel Olarak Etkinleştirme

Ana makinede aşağıdakileri yapın:

vino-preferences
  • vino-preferences ayrıca altında Dash Desktop Sharing

görüntü tanımını buraya girin

  1. kene Allow other users to view your desktop
  2. kene Allow other users to control your desktop
  3. kene Require the user to enter this password
  4. Tahmin etmek zor bir parola girin
  5. Kapat

1b. Ana Makinenin Uzaktan Kumandasını Uzaktan Etkinleştirme

İstemci makinede aşağıdakileri yapın, 123.123.12.3ana makinenizin IP adresi ile değiştirin:

ssh -Y 123.123.12.3
  • -Y, Güvenilir X11 iletmeyi etkinleştirir. Güvenilir X11 iletimleri, X11 SECURITY genişletme denetimlerine tabi değildir.

vino-preferences
  • vino-preferences ayrıca altında Dash Desktop Sharing

görüntü tanımını buraya girin

  1. kene Allow other users to view your desktop
  2. kene Allow other users to control your desktop
  3. kene Require the user to enter this password
  4. Tahmin etmek zor bir parola girin
  5. Kapat

İstemci Makinenizde Uzak Masaüstü İstemcisi profili oluşturun

İstemci makinede aşağıdakileri yapın:

remmina
  • Dash altında da remmina Remmina Remote Desktop Client

Ctrl+ Nveya Bağlantı> Yeni

görüntü tanımını buraya girin

  1. IP adresinizi [123.123.12.3] yazdığı yere girin Server
  2. Geçiş SSHsekmesi

görüntü tanımını buraya girin

  1. kene Enable SSH Tunnel
  2. Masaüstü İstemcinizi standart olmayan SSH bağlantı noktanıza yönlendirin
  3. SSH Authentication <username>Ve modunu ayarla
  4. Bağlan

Ana Makine Görüntüleme ve Kontrol

İstemci makinede, <username>şifre istendiğinde , SSH tüneli oluşturmak için girin. VNC şifresi istendiğinde ana makineye daha önce girdiğiniz şifreyi girin.

Bu adımda başarılı olursa, şimdi ana makinenin masaüstünü bir SSH tüneli üzerinden istemci makinenizden görüntülüyor ve kontrol ediyor olmalısınız.


Bu oldukça kapsamlı görünüyor, ancak ana bilgisayardaki 12345 numaralı özel bağlantı noktası nerede tanımlanıyor?
John T,

İstemciden bir yerde çalışan bir ssh komutuna ihtiyacınız olduğunu tahmin ediyorum, şöyle bir şey: ssh -L 12345: localhost: 5900 user @ server_ip uzak istemciyi tarif edildiği gibi kullanmadan önce.
John T,

3

Aşağıdaki komut dosyasıyla uzak bir ssh bağlantısından yeni bir Ubuntu 16.04 yüklemesi ayarlayabildim:

#! / Bin / bash
ihracat DISPLAY =: 0
-e -p "VNC Şifresi:" -i "ubuntu" şifresini okuyun
dconf yazma / org / gnome / masaüstü / uzaktan erişim / etkin true
dconf yazma / org / gnome / masaüstü / uzaktan erişim / istemi etkin yanlış
dconf yazma / org / gnome / masaüstü / uzaktan erişim / kimlik doğrulama yöntemleri "['vnc']"
dconf yazma / org / gnome / masaüstü / uzaktan erişim / şifreleme gerektiren yanlış
dconf yazma / org / gnome / masaüstü / uzaktan erişim / vnc-password \ "\ '$ (echo -n $ password | base64) \' \"
dconf dökümü / org / gnome / masaüstü / uzaktan erişim /
sudo service lightdm yeniden başlat

Tırnak dizgisi ayarlarından herhangi biri için önemlidir (tırnak işaretleri içindeki tek tıklamalar). Dconf'un yazabilmesi için XWindows'a erişmesi gerekiyor, bu yüzden verme DISPLAY kısmına ihtiyaç var. Bundan sonra VNC'ye bağlanmak için hala gerçek Ubuntu makinesindeki masaüstünde oturum açmanız gerektiğini düşünüyorum. Dump komutu, tüm ayarların tutulduğunu onaylamak için oradadır, buna gerçekten ihtiyacınız yoktur.

İsteğe bağlı olarak, ekranı sürekli açık tutmak istiyorsanız, bunu yapmak isteyebilirsiniz:

dconf yazma / org / gnome / masaüstü / ekran koruyucu / kilidi etkin yanlış
dconf yazma / org / gnome / masaüstü / ekran koruyucu / ubuntu kilidi kilitlemek
dconf yazma / org / gnome / masaüstü / oturum / rölanti gecikmesi "uint32 0"

2
  1. Bir vnc oturumu başlatmak için ssh kullanabilirsiniz
  2. XnestBir oturuma uzaktan başlamak ve mevcut bilgisayarınıza iletmek için X11 forwording kullanın . (Bunu zaman zaman pi'm ile yapıyorum) man page

Ben Xnestböyle kullanıyorum :

  • Xnest :1 -ac &
  • sonra DISPLAY=:1 . /etc/X11/Xsession

0

Vino sunucusunu X'i iletmeden uzaktan başlatma (yalnızca komut satırı)

Uzak bilgisayarda masaüstünü paylaşacak ve 5900 numaralı bağlantı noktasını localhost'taki aynı bağlantı noktasına iletecek kullanıcı olarak oturum açın. PuTTY ile, yönlendirme Bağlantı / SSH / Tünellerde ayarlanır. Komut satırıyla şunları kullanın:

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

vino-serverYüklü değilse yükleyin . Örneğin:

sudo apt install vino

Masaüstü paylaşımını etkinleştir (1. ve 2. satırlardaki ekran numarasıyla eşleşen):

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

Bir VNC görüntüleyici başlatın ve localhostVNC sunucu adresine bağlanın .


Aşağıdakileri aldım. Görünüşe göre bütün bunlar bir GUI konsolunda oturum açtığınızı mı varsayıyor? 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
algal

0

@Hurshid Alam cevabına dayanarak Aşağıdaki pasajı sunuyorum:

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

  • Herhangi bir etkileşim gerektirmeyen bir komuttur

  • Port yönlendirme ile SSH tüneli yaratır, x11vncoldukça güvenli bir şekilde başlar ve VNC görüntüleyiciyi başlatır ve bağlar

  • Hedef ana bilgisayarda x11vnc gerektirir, ancak başka bir yapılandırma gerekmez

  • Bilgisayarınızda vinagre gerektirir, ancak başka bir VNC görüntüleyicisi için önemsiz bir şekilde değiştirebilirsiniz

0

Sunucu bilgisayarında.

  • Terminalden 'vino-tercihleri' açın veya dash'i kullanarak 'Desktop Sharing' (Masaüstü Paylaşımı) 'nı açın.

vino-tercihleri

İstemci PC'de (sunucu UI'sini kontrol etmek istediğiniz yerden).

  • Aşağıdaki resimlerde gösterildiği gibi ayarları saklayın (kullanıcı adı ve IP adresindeki değişiklikler ile).

* Temel * sekmesi *Gelişmiş sekme * SSH * sekmesi

Tuzaklar.

  • Sunucudaki vino tercihlerini SSH kullanarak uzak bir bilgisayardan ayarlamaya çalıştığımda, değişiklik oldu, ancak bağlantı olmadı. Doğrudan sunucu makinede yapmak zorunda kaldım (uzaktan değil). Bu davranışın nedenini bilmiyorum.
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.