Bagaimana cara saya debug "Koneksi X11 ditolak karena otentikasi yang salah"

10

Saya memiliki masalah dengan penerusan X melalui SSH. Saya telah berjuang selama berabad-abad, tetapi tidak ada yang bisa membantu.

Saya sekarang mengambil kebijaksanaan yang berbeda. Saya ingin tahu bagaimana saya akan men-debug kesalahan?

Log apa yang harus saya cari, flag tambahan apa yang harus saya set (-v dll) dan apa yang harus saya cari?

Edit Lebih Lanjut:

Jika saya masuk ke Putty ke server dan mencoba xeyes, saya mendapatkan:

PuTTY X11 proxy: protokol otorisasi yang salah dicobaError: Tidak dapat membuka tampilan: localhost: 10.0

Jika xauth generate $DISPLAYsaya mendapatkan:

PuTTY X11 proxy: protokol otorisasi yang salah berusaha xauth: (argv): 1: tidak dapat membuka tampilan "localhost: 10.0".

wkdmarty
sumber
Dalam pertanyaan Anda dari hari lain Anda menggambarkan gejala yang berbeda. Apakah Anda masih menderita "Tidak dapat membuka tampilan", atau apakah Anda menyelesaikannya? Jika Anda menyelesaikannya, dan salah satu jawaban untuk pertanyaan itu sangat membantu, Anda harus memilihnya sebagai jawaban untuk menghargai orang yang membantu Anda.
Kenster
Setuju, ini kesalahan yang berbeda sekarang, saya sudah menutup pertanyaan itu.
wkdmarty
Lihat apakah jawaban ini berlaku untuk server Anda.
Kenster
Kenster, saya tidak punya file rc di server, jadi saya membuat satu dan menempelkan kode. Tidak ada perbedaan.
wkdmarty
Dalam log Putty, ini muncul setelah saya mencoba menjalankan program x (setelah login SSH). 2014-09-01 15:16:38 Menerima permintaan koneksi X11 dari 127.0.0.1-019566 2014-09-01 15:16:38 Membuka koneksi forward X11 berhasil 2014-09-01 15:16:38 Tidak ada yang tersisa untuk dikirim, closing channel 2014-09-01 15:16:38 Koneksi X11 yang diteruskan diakhiri
wkdmarty

Jawaban:

13

Solusi saya langkah demi langkah:

1) login dengan opsi -X root login host jarak jauh

$ ssh -X [email protected]

2) periksa apakah ada file .Xauthority

[root @ localhost ~] # ls -al
[root @ localhost ~] # vim .Xauthority

3) salin file .Xauthority ke direktori pengguna lain

[root @ localhost ~] # cp .Xauthority / home / oracle /
cp: menimpa `/rumah/oracle/.Xauthority '? y

4) mengatur izin untuk file ini

[root @ localhost ~] # chown oracle: oinstall .Xauthority
[root @ localhost ~] # chmod 0600 .Xauthority

5) login pengguna oracle

[root @ localhost ~] # su - oracle

6) pengaturan tampilan di localhost: 10.0

[oracle @ localhost ~] $ echo $ DISPLAY
localhost: 10.0
[oracle @ localhost ~] $ ls -al

7) daftar cookie xauth yang ada

[oracle @ localhost ~] daftar $ xauth
localhost.localdomain / unix: 11 MIT-MAGIC-COOKIE-1 310f1b02c1080e73059391c193a1881b
localhost.localdomain / unix: 10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb759

8) menambahkan

[oracle @ localhost ~] $ xauth tambahkan localhost.localdomain / unix: 10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb75

9) tes

[oracle @ localhost ~] $ xclock

Semoga mereka melayani! @waraza

Walter Caraza
sumber
2
Bagian xauth add .... adalah trik
Wei
langkah 3. dan 4. melakukan trik untuk saya
kiltek
6

Pastikan server SSH memiliki xauthalat yang diinstal, dan bahwa ~/.Xauthorityfile Anda dapat ditulisi. (Tidak ada juga oke, selama xauthbisa membuatnya.)

Periksa apakah data xauth sedang diperbarui:

server$ xauth list

Coba tambahkan data dummy xauth secara manual (lagi, di server SSH), dan lihat apakah xauthada masalah (mis. Tidak dapat membuat file kunci atau untuk memodifikasi file Xauthority itu sendiri):

server$ xauth add localhost:123 MIT-MAGIC-COOKIE-1 d7e2e4a8c5aa4430bfcc2abb436940d2

Jika perlu, jalankan kembali di bawah strace.

Jalankan layanan SSH dalam mode debug, dengan mengatur LogLevel DEBUG2konfigurasi server ( /etc/ssh/sshd_config), atau dengan memulai sshd dalam mode debug langsung:

server$ sshd -rddp 12234

(Dalam contoh ini, 12234adalah port SSH sementara yang harus Anda hubungkan. Port bebas apa pun akan dilakukan.)

pengguna1686
sumber
Terima kasih. Xauth di server dapat menulis ke file .Xauthority. Tapi apa yang seharusnya ditetapkan? server = N40L, klien = Lin001. Haruskah daftar xauth di N40L menampilkan entri untuk localhost: 10 MIT-MAGIC-COOKIE-1 {Lin001'sHexKey}?
wkdmarty
@wkdmarty: Ya, sshd Anda akan mendengarkan pada port TCP yang sesuai dengan tampilan: 10 (atau: 11,: 12 ...), dan ini akan muncul sebagai "localhost: 10". Adapun kunci hex, saya tidak benar-benar tahu apakah itu dimaksudkan untuk menggunakan kunci yang sama - saya pikir ssh benar-benar menghasilkan yang baru, dan bertindak sebagai proxy ...
user1686
ok sempurna, saya bisa melihat bahwa 0.0.0.0:6011 mendengarkan. Variabel DISPLAY saya menyatakan N40L: 11.0, yang menurut saya salah, jadi saya akan mengubahnya menjadi DISPLAY = localhost: 10.0. Tidak, masih salah. Saya memang melihat pada koneksi SSH baris ini: debug2: x11_get_proto / usr / bin / xauth daftar: 0,0 2> / dev / null di mana pun saya melihat logging koneksi SSH, baris ini berbeda ... menunjukkan generasi kunci, tidak pernah : 0,0.?
wkdmarty
@wkdmarty: Biasanya sshd harus menetapkan $ DISPLAY ke nilai yang benar ... dan port 6011 sesuai dengan tampilan 11, bukan 10, bagaimanapun.
user1686
1
"Variabel DISPLAY saya menyatakan N40L: 11.0 ... jadi saya akan mengubahnya". Untuk menjadi tumpul, biarkan DISPLAY sendirian. Jika ssh mengatur penerusan X11, itu akan mengatur DISPLAY ke nilai yang akan berfungsi. Mengganti nilai yang diatur ssh hanya akan membuat proses pemecahan masalah lebih sulit.
Kenster
3

Itu bekerja, itu bekerja. ha ha.

AKHIRNYA.

Setelah mengetahui bahwa itu bukan sistem, dengan menambahkan pengguna uji (yang meneruskan x berfungsi "di luar kotak"), saya pikir saya akan mulai menyalin file .bash * startup untuk menyatukan pengguna yang "rusak".

Tidak ada file yang berbeda, jadi selanjutnya saya menghapus direktori .ssh pengguna. Ketika saya ssh'd, itu mengeluh tentang "Server menolak kunci kami", tetapi saya bisa masuk menggunakan kata sandi. Setelah masuk, saya bisa maju dengan sempurna.

Sekarang saya akan mencoba mengatur kunci lagi dan melihat apakah saya bisa membuatnya bekerja juga. Maka itu akan kembali normal.

wkdmarty
sumber
Ini juga berhasil bagi saya. Saya mencoba semua metode lain, tapi ya ternyata masalahnya terletak pada kunci.
Auxiliary
1

Satu hal lagi yang dapat menyebabkan masalah ini adalah keberadaan ~/.ssh/rcfile di server - mesin yang Anda hubungkan. Hapus (atau ganti nama) untuk menyelesaikan masalah.

Ken Jackson
sumber
1
Per man sshd, sshd berjalan ~/.ssh/rcalih-alih xauth, @PimpJuiceIT.
Ken Jackson
Terima kasih! Untuk detail lebih lanjut, lihat: docstore.mik.ua/orelly/networking_2ndEd/ssh/… . Seharusnya dimungkinkan untuk menambahkan perintah yang sesuai untuk memulai xauth dalam file rc, tapi saya belum menemukannya.
Matt B.
0

rm ~/.Xauth* dan kemudian terhubung kembali.

Ini bekerja untuk saya. Untuk lebih jelasnya

zzz92
sumber