Buka aplikasi X melalui banyak simpai (SSH, vpn dll)

0

Para pemain:

  • komputer di rumah saya, menjalankan Linux dengan server X yang berjalan. (Sebut saja RUMAH.)
  • situs jarak jauh, di mana saya dapat terhubung melalui internet menggunakan VPN. (SITE)
  • komputer Linux di situs jarak jauh, tempat saya dapat terkoneksi ssh -Xdan dengan baik menampilkan klien X di server lokal saya. (TENGAH)
  • mesin Irix yang sangat tua (Onyx) di situs jarak jauh, yang tidak memiliki server SSH (karena itu saya tidak bisa ssh -Xmelakukannya), hanya ssh klien . (ONYX)

Tujuan

Saya perlu menjalankan aplikasi X11 pada mesin ONYX, dan melihat GUI di HOME. Saya pikir saya menemukan xauthmasalah. Perhatikan bahwa saya telah mencoba yang sudah jelas: Saya mengatur DISPLAY ke $ip_address_of_HOME_in_the_SITE_VPN:0, tetapi server VPN tidak meneruskan upaya koneksi ke kliennya, mungkin karena alasan keamanan.

Sejauh ini

Situasi saat ini adalah:

  • ☑ HOME terhubung ke SITE
  • ☑ Vncserver dimulai pada MIDDLE: 7
  • ☑ vncviewer pada HOME terhubung ke vncserver pada MIDDLE
  • ☑ ONYX memulai sesi penerusan ssh ke MIDDLE:
    ssh -TfN -L 6007:127.0.0.1:6007 MIDDLE
  • DISPLAY=localhost:7 xclientpada ONYX gagal dengan
    Xlib: koneksi ke "127.0.0.1:7.0" ditolak oleh server

Saya tahu bahwa penerusan (6007: 127.0.0.1: 6007) berhasil.

Upaya sebelumnya adalah:

  • ☑ HOME terhubung ke SITE
  • ☑ HOME terhubung ke MIDDLE:
    ssh -X MIDDLE(tampilan xclock pada HOME, DISPLAY adalah 127.0.0.1:10)
  • ☑ ONYX memulai terowongan SSH ke MIDDLE: ssh -TfN -L 6010:127.0.0.1:6010 MIDDLE
  • DISPLAY=127.0.0.1:10 xclientgagal dengan
    koneksi X ke 127.0.0.1:10.0 rusak (eksplisit kill atau server shutdown).
    sementara kesalahan muncul di sesi TENGAH:
    koneksi X11 ditolak karena otentikasi yang salah.

Putus asa

Bagaimana saya bisa mencapai tujuan saya?

tzot
sumber
Saya telah mencoba menjalankan xauthONYX, kemudian generate 127.0.0.1:10 . trusted(dalam kasus kedua di atas), tetapi saya memiliki kesalahan ganda yang sama (satu di ONYX, satu di TENGAH).
tzot

Jawaban:

0

XDMCP . Konfigurasikan ONYX untuk menerima koneksi XDMCP, kemudian bawa terowongan SSH dari HOME ke MIDDLE. Hubungkan Xnestatau Xephyrke ujung lokal terowongan SSH, dan masuk ke ONYX.

Ignacio Vazquez-Abrams
sumber
Saya akan mencoba membaca lebih lanjut tentang Xnest dan Xephyr, karena saya tidak punya pengalaman dengan ini. Saya tidak yakin bagaimana terowongan dari HOME ke MIDDLE harus diatur. Juga, jika saya mengkonfigurasi ONYX untuk menerima koneksi XDMCP, bukankah itu berarti bahwa pada konsol grafis ONYX saya dapat masuk ke sistem lain (yaitu kebalikan dari yang saya inginkan)?
tzot
Jujur, saya tidak ingat semua detailnya. Sudah begitu lama sejak saya benar-benar harus berurusan dengan XDMCP.
Ignacio Vazquez-Abrams
0

Saya berhasil mencapai solusi menggunakan terowongan SSH lurus (tanpa opsi -X), ditambah beberapa xauthmengutak-atik:

  • HOME terhubung ke SITE, telnet ke ONYX
  • HOME ssh tunnel to MIDDLE:
    ssh -TfN -R 6010:127.0.0.1:6000 MIDDLE
  • ONYX ssh tunnel ke MIDDLE:
    ssh -TfN -L 6010:127.0.0.1:6010 MIDDLE
  • BERANDA xauth nextract - $DISPLAYdan salin hasilnya
  • ONYX xauth nmerge -dan rekatkan output sebelumnya
  • ONYX DISPLAY=127.0.0.1:10 xclientberhasil :)
tzot
sumber
-1

Anda tidak dapat menggunakan DISPLAY localhost (127.0.0.1) untuk klien X yang berjalan pada kotak ONYX untuk ditampilkan pada kotak HOME. Anda memerlukan alamat IP HOME atau nama host.

mpez0
sumber
-1: Anda takut terowongan SSH, saya kira. Selain itu, saya sudah mencoba mengatur DISPLAY ke IP_OF_HOME_THRU_VPN_ON_REMOTE_SITE: 0, tetapi server VPN tidak meneruskan koneksi ke klien VPN, hanya dari .
tzot
Sebenarnya, saya memang memperhatikan terowongan. Saya tidak melihat alasan untuk kebutuhan mereka. Apapun, localhost sebagai variabel DISPLAY untuk host tanpa menjalankan server X salah.
mpez0
localhostdalam variabel lingkungan DISPLAY menyiratkan koneksi TCP / IP; sama sekali tidak ada nama host yang menyiratkan soket UNIX lokal. Mengingat ada banyak cara untuk meneruskan soket TCP / IP ke mesin jarak jauh (mis. Dengan ssh tunnels, yang berfungsi di sini; lihat jawaban saya), apa yang Anda maksud dengan bagian terakhir dari komentar Anda, “localhost sebagai variabel DISPLAY untuk variabel host tanpa menjalankan server X salah. "? Karena kenyataan membantah apa yang Anda katakan, jadi itu salah sendiri.
tzot