Tampilan SSH-forwarded X11 dari Linux ke Mac hilang setelah beberapa waktu

10

Saya memiliki masalah baru dan menjengkelkan dengan ssh meneruskan koneksi X11 saya ketika masuk dari Mac (10.7.2) ke Linux (Ubuntu 8.04). Saya tidak mengalami kesulitan menggunakan ssh -X untuk masuk ke mesin remote dan memulai aplikasi berbasis X11 dari shell itu.

Apa yang baru-baru ini mulai terjadi adalah bahwa pemanggilan tambahan aplikasi X11 dari shell yang sama, setelah beberapa saat (berdasarkan urutan jam), tidak dapat memulai karena tampilan yang diteruskan sedang diblokir (saya kira). Ketika mencoba memulai xterm, misalnya, saya mendapatkan pesan biasa tentang pengaturan DISPLAY yang buruk, seperti:

xterm Xt error: Tidak dapat membuka tampilan: localhost: 10.0

Tetapi aplikasi X11 yang saya mulai ketika saya masuk masih berjalan dengan baik, menggunakan tampilan yang sama persis (localhost: 10.0), hanya saja itu dimulai sebelumnya.

Saya mengaktifkan verbose logging di sshd_config dan saya melihat ini di file /var/log/auth.log sebagai respons terhadap upaya startup xterm yang gagal:

sshd [22104]: saluran 8: terbuka gagal: secara administratif dilarang: terbuka gagal

Jika saya ssh -X ke server lagi, memulai shell baru dan ditugaskan tampilan baru (localhost: 11.0), proses yang sama berulang: aplikasi X11 dimulai lebih awal berjalan dengan baik selama saya tetap buka (hari) ), tetapi setelah beberapa jam saya tidak dapat memulai yang baru dari shell itu.

Keterangan: Server OpenSSH sshd yang berjalan pada Ubuntu 8.04, tampilan diteruskan ke Mac yang menjalankan Lion (10.7.2) dengan server Apple X default. Sistem terhubung pada LAN Ethernet dengan satu sakelar di antaranya. Tidak ada mesin yang menjalankan firewall. Sampai baru-baru ini (beberapa hari yang lalu) pengaturan ini bekerja dengan sempurna sehingga saya bingung ke mana harus mencari berikutnya. Saya bukan ahli X11 atau SSH tetapi memiliki pengalaman UNIX / Linux yang baik. Tidak ada yang jelas telah berubah dalam konfigurasi klien atau server walaupun saya telah mencoba mengubah beberapa opsi untuk mencoba men-debug ini, seperti pengaturan TCPKeepAlive sshd_config menjadi tidak, dan pengaturan "host + localhost" (Anda dapat mengatakan bahwa saya telah Googling).

Ketika masuk dari laptop Linux 11,10 ke host jarak jauh yang sama melalui jaringan yang sama dan beralih, masalah ini tidak terjadi - xterm dapat dipanggil berhasil beberapa jam kemudian dari shell login ssh yang sama sementara percobaan yang sama dari Mac gagal ( diuji pagi ini untuk memastikan), sehingga akan muncul masalah khusus Mac.

Dengan "LogLevel DEBUG3" yang diset pada mesin jarak jauh (sshd server), dan tidak ada perubahan yang dibuat dalam koneksi klien oleh saya, /var/log/auth.log menunjukkan satu perubahan kecil dalam laporan status koneksi semalam, yang merupakan nomor port yang digunakan oleh satu sesi ssh yang berhasil dari mesin Linux (saya pikir), koneksi # 7 di bawah ini:

sshd [20173]: debug3: saluran 7: status: Koneksi berikut terbuka: \ r \ n # 0 sesi server (t4 r0 i0 / 0 o0 / 0 fd 14/13 cfd -1) \ r \ n # 3 Koneksi X11 dari 127.0.0.1 port 57564 (t4 r1 i0 / 0 o0 / 0 fd 16/16 cfd -1) \ r \ n # 4 Koneksi X11 dari 127.0.0.1 port 57565 (t4 r2 i0 / 0 o0 / 0 fd 17 / 17 cfd -1) \ r \ n # 5 koneksi X11 dari 127.0.0.1 port 57566 (t4 r3 i0 / 0 o0 / 0 fd 18/18 cfd -1) \ r \ n # 6 koneksi X11 dari 127.0.0.1 port 57567 (t4 r4 i0 / 0 o0 / 0 fd 19/19 cfd -1) \ r \ n # 7 X11 koneksi dari 127.0.0.1 port 59007

Dalam laporan ini, semuanya sama antara laporan status kecuali nomor port yang digunakan oleh koneksi # 7 yang saya percaya adalah klien Linux - satu-satunya yang masih mempertahankan koneksi tampilan. Terus meningkat seiring waktu, dilihat dari urutan laporan ini dalam semalam.

Terima kasih atas bantuannya,

-Mike

mklein9
sumber
Saya mengalami masalah yang sama.
churnd
Saya menyalakan -vvv pada perintah ssh untuk mendapatkan info debug dari sesi ssh sisi klien Mac. Saya mendapatkan ini: codeMenolak koneksi X11 setelah ForwardX11Timeout kedaluwarsa ForwardX11Timeout adalah opsi di klien ssh Mac yang membatasi penerusan dari koneksi yang tidak dipercaya. Berpotensi menggunakan -Y bukannya -X akan bekerja. ForwardX11Timeout tidak didokumentasikan di halaman manual ssh Lion. Standarnya tampaknya 20 menit. Mengaturnya lebih tinggi di ssh_config dimungkinkan tetapi server Lion's X mogok jika diatur ke> 596 jam ... yang, dalam milidetik, meluap 31 bit. Arrgh. Semoga ini memperbaikinya.
mklein9

Jawaban:

13

Sesi ssh dimulai setelah saya mengubah klien Mac / etc / ssh_config untuk memasukkan baris:

ForwardX11Timeout 596h

semuanya bekerja dengan baik dan telah sepanjang hari. Sekarang mereka semua sudah menolak untuk memulai xterms baru. Jadi saya percaya ini adalah jawabannya, dan untungnya solusi sederhana, tetapi batas waktu akan tetap terjadi 3-1 / 2 minggu dari sekarang.

mklein9
sumber
3

man ssh_config

ForwardX11Trusted

Jika opsi ini disetel ke "ya" remote X11, klien akan memiliki akses penuh ke tampilan X11 asli. Jika opsi ini disetel ke "tidak", klien X11 jarak jauh akan dianggap tidak dipercaya dan dicegah mencuri atau merusak data milik klien X11 tepercaya. Selanjutnya, token xauth (1) yang digunakan untuk sesi akan ditetapkan akan kedaluwarsa setelah 20 menit. Klien jarak jauh akan ditolak aksesnya setelah waktu ini. Standarnya adalah "tidak" Lihat spesifikasi ekstensi X11 SECURITY untuk detail lengkap tentang batasan yang dikenakan pada klien yang tidak terpercaya.

Isabella
sumber
1
Mungkin bermanfaat jika Anda memperluas alasan Anda berpikir opsi konfigurasi ini akan menyelesaikan masalah awal.
pjmorse
Ini menjelaskan mengapa masalah terjadi, tetapi beberapa alasan akan sangat membantu.
Stefan Lasiewski
1

Untuk menambah "jawab Jan 7 '12 pada 0:11 mklein9 28129" "Sesi ssh dimulai setelah saya mengubah klien Mac / etc / ssh_config untuk memasukkan baris:

ForwardX11Timeout 596h

... tetapi batas waktu akan tetap terjadi 3-1 / 2 minggu dari sekarang. "

Rupanya Anda dapat menggunakan 0 dan ini menetapkan batas waktu hingga tak terbatas (selama koneksi aktif).

ForwardX11Timeout 0

...

AB.
sumber