Cara login jarak jauh dengan desktop grafis penuh melalui X11

8

Saya memiliki dua mesin, keduanya menjalankan kubuntu: server & client. Saya ingin terhubung ke server dari klien dan memulai antarmuka grafis penuh tanpa takut bahwa beberapa perintah akan dijalankan sebagai pengguna klien.

Jadi, ssh -XCberfungsi dan saya juga dapat memulai program grafis dari itu dengan baik.

Namun, ketika saya mengetik startkdedi konsol ssh, dikatakan "KDE tampaknya sudah berjalan di layar ini." Yang benar, tetapi tidak untuk akun pengguna yang sama.

Saya mencoba keluar dari antarmuka grafis dan masuk dari tty, tetapi kemudian (tidak mengejutkan) gagal memulai program grafis apa pun, termasuk kde.

Lalu bagaimana saya bisa melakukan ini sehingga saya bisa masuk seperti saya masuk dengan pengguna lokal? Gunakan mesin klien sebagai terminal bisu.

velis
sumber

Jawaban:

12

XDMCP dirancang untuk ini. Di server Anda, Anda harus mengaktifkan dukungan XDMCP di desktop manager Anda:

  • jika Anda menggunakan kdm, cari

    [Xdmcp]
    Enable=false
    

    di akhir Anda kdmrc, ubah falseke truedan mulai kembali kdm;

  • jika Anda menggunakan lightdm, tambahkan

    [XDMCPServer]
    enabled=true
    port=177
    

    ke /etc/lightdm/lightdm.confdan mulai ulang lightdm.

Kemudian pada klien Anda, mulai X menggunakan

X -query ${SERVER_IP}

(dengan alamat IP yang sesuai sebagai gantinya), dan layar login server Anda akan muncul di klien Anda.

Stephen Kitt
sumber
terima kasih, persis apa yang saya butuhkan. Paman G yang lucu tidak menemukannya dan saya harus bertanya.
velis
2
Ini berfungsi, tetapi XDMCP berarti Anda menggunakan protokol X11 biasa, yang tidak mendukung enkripsi. Jika itu masalah, Anda perlu mencari solusi lain
Wouter Verhelst
4

Anda dapat menghidupkan server VNC

Pengaturan> Berbagi> Berbagi Layar

Kemudian proxy forward 5900 over ssh ke pc Anda jika Anda perlu menggunakan ssh.

ssh -L 5900:localhost:5900 #destination here

kemudian gunakan klien Remote Desktop (RD) seperti Remina untuk terhubung ke proxy ssh lokal jadi;

Hubungkan> 127.0.0.1-5900

Pastikan untuk melihat kegagalan keamanan VNC sebelum Anda menggunakannya. VNC seharusnya cukup aman untuk digunakan jika tunneling Anda melebihi ssh. Metode ini hanya akan berfungsi jika Anda memiliki pengguna yang masuk. Untuk membuatnya berfungsi tanpa pengguna masuk, Anda harus ssh in, mulai server VNC dan tentukan tampilan apa yang menggunakan IE 0, 1, 2 dan lalu sambungkan menggunakan Remina atau sesuatu dari mana saja.

sambungan
sumber
Saya telah menginstal x11vnc di ubuntu. Jadi jika tidak ada pengguna yang masuk ke sistem maka perintah untuk memulai x11vnc apakah x11vnc displaynumber:1benar?
ART
3

Anda dapat memulai manajer jendela melalui sesi SSH, tetapi Anda harus memastikan bahwa server X Anda belum menjalankan manajer jendela itu.

Ini dapat dicapai dengan dua cara:

  1. Lakukan semuanya secara manual, daripada menggunakan startxatau manajer tampilan:

    Pertama, mulai server X Anda:

    X -nolisten tcp :0
    

    sekarang ubah ke konsol virtual lain (mis. tekan ctrl + alt + f2), dan ketik:

    DISPLAY=:0 ssh -XC <host> startkde
    

    Sekarang kembali ke konsol virtual pertama dan gunakan sesi X Anda secara normal. Kelemahan dari metode ini adalah tidak termasuk xauthpengaturan (sehingga secara teori semua orang di mesin jarak jauh akan dapat terhubung ke sesi X Anda, yang merupakan risiko keamanan); Anda mungkin ingin menambahkan itu.

  2. Gunakan file .xinitrc(untuk startx) atau .xsession(untuk manajer tampilan) untuk memodifikasi window manager Anda:

    Jika Anda telah mengatur sistem Anda sehingga SSH tanpa kata sandi berfungsi, (mis., Melalui kunci ssh, atau dengan menggunakan Kerberos atau mekanisme otentikasi lainnya), Anda dapat menambahkan baris berikut sebagai baris terakhir di file .xinitrcatau Anda .xsession:

    exec ssh -XC <host> startkde
    

    Yang perlu diingat adalah bahwa apa pun yang Anda tambahkan ke file-file itu akan dieksekusi alih-alih pengaturan sesi X11 normal Anda. Dalam beberapa kasus, Anda mungkin perlu memilih opsi "standard Xsession" di layar masuk Anda.

    Bahkan jika Anda tidak memiliki SSH tanpa kata sandi, ini mungkin masih berfungsi, asalkan Anda telah ssh-askpassmenginstal. Jika sshmenentukan bahwa itu tidak memiliki terminal mengendalikan tetapi tidak memiliki $DISPLAYvariabel set, ia akan menggunakannya untuk meminta password.

    Kelemahan dari metode ini adalah semakin sulit untuk masuk ke mesin "lokal".

Wouter Verhelst
sumber