Terima kasih kepada @jensd, @unxnut karena telah membantu saya. berdasarkan komentar Anda, saya bisa mengetahui masalahnya.
Solusinya membutuhkan dua langkah:
- variabel DISPLAY harus diatur dengan benar.
- saat ssh'ing ke server jauh, sakelar -X harus menyala
usaha saya sebelumnya kekurangan satu atau kedua kondisi ini.
Bagaimanapun, untuk pengguna kemudian yang melihat ini, ini adalah contoh untuk menunjukkan kepada Anda apa yang ingin saya katakan.
kasus 1
mesin lokal saya tidak akan memiliki set variabel DISPLAY. Dan kemudian saya akan ssh ke server jauh dengan -X switch dan kemudian coba jalankan xclock
.
Black@Black-PC ~
$ echo $DISPLAY
## the blank means that DISPLAY variable has not been specified##
Black@Black-PC ~
$ ssh -X kwagjj@$labserver -p 122
Last login: Tue Jun 24 22:23:13 2014 from
[kwagjj@James5 ~]$ xclock
Error: Can't open display:
[kwagjj@James5 ~]$ setenv | grep $DISPLAY
DISPLAY: Undefined variable.
karena Anda dapat melihat kesalahan Error: Can't open display:
ditampilkan di terminal server jarak jauh.
case2
kali ini, di mesin lokal, saya akan menentukan variabel DISPLAY. Tetapi ketika saya ssh'ing, saya tidak akan menyalakan saklar -X. Hasilnya akan gagal:
Black@Black-PC ~
$ export DISPLAY=:0.0
Black@Black-PC ~
$ echo $DISPLAY
:0.0
Black@Black-PC ~
$ ssh kwagjj@$labserver -p 122
Last login: Tue Jun 24 22:33:32 2014 from
[kwagjj@James5 ~]$ xclock
Error: Can't open display:
[kwagjj@James5 ~]$ setenv | grep DISPLAY
[kwagjj@James5 ~]$
di awal Anda dapat melihat bahwa saya telah mengatur variabel DISPLAY dengan benar. Namun demikian, setelah ssh'ing (tanpa saklar -X) xclock tidak dijalankan.
* Hasil yang berbeda dengan setenv | grep DISPLAY
dapat dilihat di sini (bandingkan dengan case1). dalam case2, hasilnya kosong. di sisi lain, hasil case1 ke baris perintah ini adalah DISPLAY: undefined variable
.... Saya tidak yakin bagaimana perbedaan ini disebabkan tetapi saya mendapatkan firasat yang terkait dengan apakah Anda telah memenuhi salah satu syarat 1. atau 2 .
case3
kali ini, saya akan secara tepat menentukan variabel DISPLAY di mesin lokal dan juga ssh ke server jauh dengan -X saya aktif.
Black@Black-PC ~
$ echo $DISPLAY
:0.0
Black@Black-PC ~
$ ssh -X kwagjj@$labserver -p 122
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Warning: No xauth data; using fake authentication data for X11 forwarding.
Last login: Tue Jun 24 22:37:27 2014 from
[kwagjj@James5 ~]$ xclock &
[1] 9174
[kwagjj@James5 ~]$ setenv | grep DISPLAY
DISPLAY=localhost:11.0
[kwagjj@James5 ~]$
dengan pengaturan ini, xclock
berfungsi !! inilah tangkapan layar untuk membuktikan bahwa saya tidak berbohong.
xclock berhasil ditampilkan di mesin lokal saya.
Sekali lagi, periksa hasil setenv | grep DISPLAY
dalam hal ini. Sekarang menunjukkan DISPLAY=localhost:11.0
. Dari apa yang saya ketahui, ini terkait dengan MIT-MAGIC-COOKIE dalam file .Xauthority tetapi karena saya tidak tahu banyak tentang ini, saya tidak akan melangkah lebih jauh.
Kesimpulan: dari tiga kasus di atas, kami dapat mengonfirmasi bahwa agar remote X Windows ditampilkan dengan benar, keduanya 1. variabel DISPLAY mesin lokal dan 2. ssh -X
switch harus diatur dengan benar. Tentu saja, server jarak jauh harus memungkinkan X11 meneruskan.