Bagaimana cara mengatur berbagi desktop jarak jauh melalui SSH?

44

Apakah ada cara untuk melihat (dan mengendalikan) desktop jarak jauh melalui SSH? Saya tidak akan memiliki akses fisik ke mesin host jarak jauh.

kasar
sumber
vino non SSH spesifik: askubuntu.com/questions/4474/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Jawaban:

51

Metode 1:

Ini dapat dicapai dengan vino vnc server & remmina (keduanya menjadi default dengan ubuntu; jika tidak menginstalnya dengan menjalankan sudo apt-get install remmina). Kemudian Jalankan perintah Mengikuti dari komputer lokal di terminal prompt:

  1. ssh -Y gman@remote. Gunakan penerusan X11 yang tepercaya, jika tidak, itu tidak akan berhasil

  2. vino-preferences. Ini akan membuka preferensi vino.

    preferensi vino

  3. Juga Klik configure network automatically to accept connection. Tapi jangan masukkan kata sandi apa pun, base64-nya disandikan . Kemudian klik tutup. Lalu lari:

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

    Ini akan memulai server vino.

  4. Logout dari server:

    xhost -
    
    Press CTRL+C twice
    
    exit
    
    exit
    
  5. Lalu buka remmina . Pilih di vncbawah protokol.

    Di bawah basictab cantumkan alamat server server.

    Pada ssh klik tab enable ssh tunnel. Di bawah ssh authentication, bisa jadi passwordatau public key:

    remmina-preferensi

    Klik simpan. Dan kemudian klik dua kali nama koneksi (home-desktop seperti yang ditunjukkan pada gambar) untuk mulai menjelajahi desktop jarak jauh.


Metode 2:

x11vncadalah server VNC sederhana dan Anda tidak perlu dipusingkan dengan pengaturan Gnome atau 500 firewall, cukup instal x11vncdi semua komputer Anda (dengan boneka atau apa pun yang Anda gunakan untuk kontrol massa).

Kemudian dari komputer lokal Anda:

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

Jelas bertukar user@hostuntuk nama pengguna dan nama host / IP komputer jarak jauh.

Dan kemudian gunakan klien VNC pilihan Anda untuk terhubung localhost:5900. Perintah SSH memulai server vnc pada komputer jarak jauh dan kemudian terowongan kembali port itu melalui SSH. Anda tidak harus membuka port apa pun (selama Anda sudah bisa SSH).

Jika komputer Anda memiliki pengaturan tampilan lucu, Anda mungkin lebih baik meninggalkan -display :0segmen dalam perintah SSH. x11vnckemudian secara otomatis akan mencoba menemukan tampilan yang tepat.


Sumber: askubuntu

Khurshid Alam
sumber
Jika Anda menggunakan vncviewer dengan koneksi ssh yang lambat, perintah Anda akan terlihat seperti vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0(pada Debian / Ubuntu viewer berasal dari tightvnc) atau vncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0(pada Red Hat / Fedora viewer dari tigervnc), di mana level kualitas pada Debian dan Redhat adalah antara 0 dan 9, di mana 9 adalah yang terbaik, tetapi membutuhkan koneksi cepat.
erik
@ erik Terima kasih telah menjelaskan cara menggunakannya dengan vncviewerkoneksi yang lambat. Saya pribadi, mungkin akan menetapkan QualityLevel=4 or 5karena 0 qualitylevel(yang 256 colors, saya pikir) terlalu membosankan untuk saya.
Khurshid Alam
1
"Metode 2" Anda sempurna untuk akses cepat ke tampilan fisik dari jarak jauh tanpa pengaturan permanen khusus. Saya perlu menambahkan parameter -auth seperti yang dijelaskan dalam pesan kesalahan ketika saya menjalankan perintah tetapi jika tidak berfungsi dengan baik. Terima kasih!
Pierre
@gerky metode 3 akan menjadi NoMachine, saat ini tercepat dan gratis (meskipun bukan opensource), dan bekerja di android juga
Aquarius Power
1
Untuk metode 2, saya harus menggunakan -auth guessdan menjalankannya sebagai root. Sangat membantu, terima kasih!
Bob Carlson
9

Ikhtisar Solusi

Dengan anggapan Anda telah menyiapkan OpenSSH Servermesin host Anda, Anda harus terlebih dahulu mengaktifkan kontrol desktop pada mesin host Anda. Jika Anda dapat mengaktifkan kontrol desktop terlebih dahulu pada mesin host Anda secara lokal, buka 1a. Jika Anda harus terlebih dahulu mengaktifkan kontrol desktop pada mesin host Anda dari jarak jauh, pergilah ke 1b.

Selanjutnya buat profil Klien Desktop Jarak Jauh pada mesin klien Anda untuk terhubung ke mesin host melalui terowongan SSH dan akhirnya melihat dan mengontrol desktop mesin host melalui terowongan SSH.

1a. Mengaktifkan Remote Control Secara Lokal dari Mesin Host

Lakukan hal berikut di mesin host:

vino-preferences
  • vino-preferences juga di Dash di bawah Desktop Sharing

masukkan deskripsi gambar di sini

  1. Kutu Allow other users to view your desktop
  2. Kutu Allow other users to control your desktop
  3. Kutu Require the user to enter this password
  4. Masukkan frasa sandi yang sulit ditebak
  5. Dekat

1b. Mengaktifkan Remote Control dari Mesin Host dari Jarak Jauh

Lakukan hal berikut pada mesin klien, ganti 123.123.12.3dengan alamat IP mesin host Anda:

ssh -Y 123.123.12.3
  • -Y, Mengaktifkan penerusan X11 yang tepercaya. Penerusan X11 tepercaya tidak dikenai kontrol ekstensi X11 SECURITY.

vino-preferences
  • vino-preferences juga di Dash di bawah Desktop Sharing

masukkan deskripsi gambar di sini

  1. Kutu Allow other users to view your desktop
  2. Kutu Allow other users to control your desktop
  3. Kutu Require the user to enter this password
  4. Masukkan frasa sandi yang sulit ditebak
  5. Dekat

Buat profil Klien Desktop Jarak Jauh di Mesin Klien Anda

Lakukan hal berikut di mesin klien:

remmina
  • remmina juga di Dash di bawah Remmina Remote Desktop Client

Ctrl+ Natau Koneksi> Baru

masukkan deskripsi gambar di sini

  1. Isi alamat IP Anda [123.123.12.3] di mana dikatakan Server
  2. Beralih ke SSHtab

masukkan deskripsi gambar di sini

  1. Kutu Enable SSH Tunnel
  2. Arahkan Klien Desktop Anda ke port SSH non-standar Anda
  3. Atur SSH Authentication <username>dan mode Anda
  4. Menghubungkan

Lihat dan Kontrol Mesin Host

Pada mesin klien, ketika dimintai <username>kata sandi, masukkan kata sandi untuk membuat terowongan SSH. Ketika ditanya kata sandi VNC, masukkan frasa sandi yang sebelumnya Anda masukkan ke mesin host.

Jika berhasil pada langkah ini, Anda sekarang harus melihat dan mengendalikan desktop mesin host dari mesin klien Anda melalui terowongan SSH.

jtd
sumber
Ini tampaknya cukup komprehensif, tetapi di mana port kustom 12345 didefinisikan pada host?
John T
Saya kira Anda perlu menjalankan perintah ssh dari klien di suatu tempat, sesuatu seperti: ssh -L 12345: localhost: 5900 pengguna @ server_ip sebelum menggunakan klien jarak jauh seperti yang dijelaskan.
John T
3

Saya dapat mengatur instalasi Ubuntu 16.04 baru dari koneksi ssh jarak jauh dengan skrip berikut:

#! / bin / bash
export DISPLAY =: 0
baca -e -p "VNC Kata Sandi:" -i "ubuntu" kata sandi
dconf write / org / gnome / desktop / remote-access / enabled true
dconf write / org / gnome / desktop / remote-access / prompt-enabled false
dconf write / org / gnome / desktop / akses-jauh / metode otentikasi "['vnc']"
dconf write / org / gnome / desktop / remote-access / membutuhkan-enkripsi palsu
dconf write / org / gnome / desktop / remote-access / vnc-password \ "\ '$ (echo -n $ password | base64) \' \"
dconf dump / org / gnome / desktop / remote-access /
sudo service lightdm restart

Kutipan penting untuk pengaturan string mana pun (kutu tunggal di dalam tanda kutip). Untuk dconf agar dapat menulisnya perlu akses ke XWindows, oleh karena itu diperlukan bagian DISPLAY ekspor. Saya pikir Anda masih harus masuk ke desktop pada mesin Ubuntu yang sebenarnya untuk terhubung dengan VNC setelah ini. Perintah dump hanya ada di sana untuk mengkonfirmasi semua pengaturan berhasil, Anda tidak benar-benar membutuhkannya.

Secara opsional, Anda mungkin ingin melakukan ini jika Anda ingin selalu menampilkannya:

dconf write / org / gnome / desktop / screensaver / lock-enabled false
dconf write / org / gnome / desktop / screensaver / ubuntu-lock-on-suspend false
dconf write / org / gnome / desktop / session / idle-delay "uint32 0"
Integrator
sumber
2
  1. Anda dapat menggunakan ssh untuk memulai sesi vnc
  2. Gunakan Xnestdengan X11 untuk menulis untuk memulai sesi dari jauh dan meneruskannya ke komputer Anda saat ini. (Saya melakukan ini dari waktu ke waktu dengan pi saya) halaman manual

Saya menggunakan Xnestseperti ini:

  • Xnest :1 -ac &
  • kemudian DISPLAY=:1 . /etc/X11/Xsession
pendiam
sumber
0

Cara memulai server Vino dari jarak jauh tanpa meneruskan X (khusus baris perintah)

Logon di komputer jarak jauh sebagai pengguna yang akan berbagi desktop dan meneruskan port 5900 ke port yang sama di localhost. Dengan Putty, pengalihan diatur dalam Connection / SSH / Tunnels. Dengan baris perintah, gunakan:

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

Instal vino-serverjika belum diinstal. Sebagai contoh:

sudo apt install vino

Aktifkan berbagi desktop (mencocokkan nomor tampilan pada baris 1 dan 2):

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

Mulai penampil VNC dan sambungkan ke localhostuntuk alamat server VNC.

Futal
sumber
Dapatkan yang berikut. Sepertinya ini semua menganggap Anda sudah masuk ke konsol GUI? 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
alga
0

berdasarkan jawaban @Khurshid Alam saya sajikan cuplikan berikut:

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

  • Ini adalah salah satu perintah yang tidak memerlukan interaksi apa pun

  • Ini menciptakan terowongan SSH dengan penerusan porta, dimulai x11vncdengan cara yang cukup aman dan meluncurkan dan menghubungkan penampil VNC

  • Membutuhkan x11vnc pada host target, tetapi tidak ada konfigurasi lebih lanjut

  • Ini memerlukan vinagre di PC Anda, tetapi Anda dapat mengubahnya untuk penampil VNC lainnya
mnagel
sumber
0

Di PC server.

  • Buka 'preferensi-vino' dari terminal atau 'Berbagi Desktop' menggunakan tanda hubung.

vino-preferensi

Di PC klien (dari tempat Anda ingin mengontrol UI server).

  • Simpan pengaturan seperti yang ditunjukkan pada gambar di bawah (dengan perubahan di tempat nama pengguna dan IP).

* Dasar * tab *Tab Lanjutan * SSH * tab

Perangkap.

  • Ketika saya mencoba untuk mengatur vino-preferensi di server dari PC jarak jauh menggunakan SSH, itu berubah, tetapi koneksi tidak terjadi. Saya harus melakukannya di mesin server secara langsung (tidak jarak jauh). Saya tidak tahu alasan perilaku ini.
anggur
sumber