Apa yang dimaksud dengan "Peringatan: penyiapan penerusan X11 yang tidak terpercaya gagal: data kunci xauth tidak dihasilkan" artinya ketika ssh'ing dengan -X?

134

Ketika saya gunakan ssh -Xdi Mac saya (menjalankan OS X 10.6.7) untuk terhubung ke kotak Ubuntu (11.04) saya, saya mendapatkan peringatan berikut:

Peringatan: penyiapan penerusan X11 yang tidak terpercaya gagal: data kunci xauth tidak dihasilkan Peringatan: Tidak ada data xauth; menggunakan data otentikasi palsu untuk penerusan X11.

Adakah yang bisa saya lakukan untuk menghilangkan peringatan ini? Jika tidak, bisakah saya mengabaikannya dengan aman?

Penerusan X11 sepertinya berfungsi dengan baik, meskipun saya melihat pesan ini:

Xlib: ekstensi "RANDR" hilang pada layar "localhost: 10.0".

Apakah itu terkait dengan peringatan itu? (Kurasa tidak. Jika tidak, aku akan mengajukan pertanyaan baru tentang itu.)

Daryl Spitzer
sumber
1
APAKAH program xauth diinstal pada server ubuntu?
slubman
sudo apt-get install xauthmemberitahu saya "xauth sudah menjadi versi terbaru"
Daryl Spitzer
Saat login di server ubuntu, apa output dari 'yang xauth'?
Slubman
Memang saya pikir Anda harus membaca penjelasan ini: mail-archive.com/[email protected]/msg17927.html ... Anda dapat mengabaikan peringatan ini
slubman
2
kadang-kadang ini bisa disebabkan oleh masalah dengan file ~ / .Xauthority Anda. Jika Anda menghapusnya, itu akan dibuat kembali saat Anda mencoba masuk lagi.
michael

Jawaban:

145

Apa alasan Anda tidak ingin menggunakan flag -Y alih-alih flag -X?

Sederhananya, perbedaan antara -X dan -Y adalah bahwa -Y memungkinkan penerusan X11 yang tepercaya.

pengguna5336
sumber
4
Tidak, saya hanya tidak menyadari bendera -Y ketika saya menulis pertanyaan. Saya percaya itu ternyata menjadi solusi. Ubah jawaban Anda jadi itu bukan pertanyaan (dan alangkah baiknya jika Anda menjelaskan secara singkat perbedaan antara -Y dan -C) dan saya akan menerimanya.
Daryl Spitzer
apakah ada kasus ketika Anda tidak ingin menggunakan -Y bukan -X?
Ayam jantan
@Rooster untuk sistem yang sangat lama di mana -Y tidak didukung saya akan mengatakan
Petr
Tip pemecahan masalah: Jalankan "ssh -vv ..." dan cari baris xauth dan pesan kesalahan apa pun. Anda dapat mencoba menjalankan garis xauth yang ditampilkan secara langsung. Untuk saya, saya membutuhkannya seperti "daftar xauth: 0" (tepercaya) bukan "xauth -f / tmp / ssh ... daftar: 0" (tidak dipercaya). Yang -Y diperbaiki dan "ForwardX11Trusted yes" di host jarak jauh / etc / ssh / ssh_config (atau ~ / .ssh / config) juga diperbaiki.
Curtis Yallop
Solusi ini juga bekerja dengan Cygwin / X.
linux64kb
25

Jika Anda datang ke sini pada tahun 2015: bahkan jika segalanya diatur dengan benar, ini juga dapat terjadi pada Mac OS X 10.10 Yosemite, ketika menggunakan ssh -Xdan menjalankan versi XQuartz <= 2.7.7. Akar penyebabnya adalah soket tampilan X11 yang ditulis di luar jalur pencarian xauth: edisi # 2068 di pelacak XQuartz.

Sunting: XQuartz yang diperbaiki sejak dirilis di beranda baru, xquartz.org , dan menginstal versi terbaru dari sana (saat ini 2.7.9) akan mengatasi masalah ini.

Will Angley
sumber
1
Terima kasih! Saya tidak tahu bahwa XQuartz yang baru saya unduh dari bagian atas halaman XQuartz sebenarnya bukan rilis terbaru.
craigds
Perlu dicatat bahwa brew install xquartzsaat ini menginstal versi 2.7.7 yang ketinggalan zaman.
Martin Cleaver
brew install Caskroom/cask/xquartzseharusnya memberi Anda XQuartz terbaru dengan HomeBrew
Nick
Atau lebih pendek brew cask install xquartz.
Franklin Yu
17

Jika Anda mendapatkan pesan yang sama bahkan saat menggunakan -Y, xauthprogram mungkin hilang di server. Pada sistem seperti Debian, Anda memerlukan xauthpaket. Pada sistem seperti RedHat, Anda memerlukan xorg-x11-xauthpaket.

Flup
sumber
15

"Tidak tepercaya" dalam konteks ini berarti Anda tidak mempercayai koneksi. SSH akan menggunakan langkah-langkah keamanan tambahan untuk mencoba membuat penerusan X11 lebih aman. "Tepercaya" berarti Anda sepenuhnya yakin bahwa tidak ada nyala di host jarak jauh akan mendapatkan akses ke data Xauth Anda dan menggunakannya untuk memantau penekanan tombol Anda misalnya.

Terminologi ini sebenarnya membingungkan saya selama bertahun-tahun. Saya pikir koneksi "Tepercaya" lebih aman. Tetapi sebenarnya ini adalah opsi yang seharusnya Anda gunakan dalam situasi di mana koneksi IS dipercaya dan Anda ingin menjalankan hal-hal tanpa langkah-langkah keamanan tambahan menghalangi Anda. "Tidak dipercaya" adalah salah satu yang membuatnya (agak) lebih aman untuk berurusan dengan host jarak jauh yang tidak dipercaya.

Koneksi "Tidak Dipercaya" mencoba membatasi apa yang bisa dilakukan topi hitam kepada Anda dengan menggunakan ekstensi keamanan X11 dan menonaktifkan ekstensi lain yang Anda (mudah-mudahan) tidak perlu. Ini mungkin mengapa RandR dinonaktifkan dengan -X. Apakah Anda harus dapat memutar layar X dari host jarak jauh?

Penting juga untuk dicatat bahwa penerusan X11 "tidak dipercaya" mati setelah beberapa waktu untuk mencegah Anda secara tidak sengaja membiarkannya. Upaya baru untuk membuka windows akan gagal setelah itu. Itu menggigit saya beberapa kali sebelum saya membaca cukup dokumen untuk memahami apa yang terjadi.

tetsujin
sumber
9

Saya tidak memiliki pengaturan yang dapat menunjukkan perilaku ini, jadi ini adalah kesempatan yang sulit:

Peringatan itu mungkin ditekan jika Anda mengatur ForwardX11Trusteduntuk "no"host yang memberikan peringatan ini. Anda dapat menempatkan ini di salah satu ~/.ssh/configatau /etc/ssh/ssh_config, dan Anda dapat membuat opsi khusus untuk host tertentu dengan memasukkan Host <hostname>pada baris di atas. yang <hostname>komponen sesuai apa yang Anda ketik pada baris perintah (bukan nama host diselesaikan), dan dapat mencakup wildcard.

Michael Lowman
sumber
Orang dapat menggunakan ssh -Yuntuk melakukan penerusan X11 yang tepercaya tetapi bagaimana cara memperbaiki yang tidak dipercaya?
Pavel Šimerda
Saya mendapat kesalahan yang sama di Redhat dan sekarang saya bisa menyelesaikannya dengan mengedit file konfigurasi /etc/ssh/ssh_configdi sisi klien. Terima kasih
Gangadhar Jannu
7

WASPADALAH (lelah membaca jawaban yang tidak lengkap yang mengarah pada kelemahan keamanan)

1 / menggunakan ssh -Y berarti di sini memiliki informasi xauth palsu yang buruk!

2 / ssh -X harus berfungsi karena XQuartz, setelah diaktifkan, menggunakan xauth. Satu-satunya masalah adalah ssh mencari xauth di / usr / X11R6 / bin dan pada Macos dengan XQuartz ada di / opt / X11 / bin

Pemecahan aman:

1 / Aktifkan opsi pertama di tab Keamanan preferensi (Cmd-,) yang memungkinkan koneksi terotentikasi

2 / tambah

XAuthLocation /opt/X11/bin/xauth

dalam $ HOME / .ssh / config

3 / ssh -X you_serverbekerja dengan cara yang aman

Koko
sumber
6

Jika menginstal xauthtidak berfungsi dengan benar, satu kasus yang sangat mengganggu bisa menjadi .Xauthorityfile yang rusak . Kasus khusus ini memungkinkan beberapa klien X untuk bekerja, tetapi tidak yang lain dengan kecenderungan lebih besar untuk gagal dengan tampilan yang lebih baru. Menghapus dan membuat ulang .Xauthorityfile dapat menyelesaikan masalah itu.

Hildred
sumber
6

Singkirkan masalah sisi server

Pertama, Anda harus mengesampingkan masalah sisi server. Apakah Anda berhasil ssh -Xdari host lain? Apakah ssh -Ybekerja sementara ssh -Xtidak? Dalam kedua kasus, anggap ssh + X11 sudah diatur dengan benar di server Anda dan pindah ke bagian berikutnya.

Jika Anda tidak dalam posisi untuk memeriksa itu (Anda memiliki tetapi satu laptop Anda menjalankan X11, katakanlah), Anda bisa sshdari server ke dirinya sendiri menggunakan sesi palsu:

  1. export DISPLAY=:44# (Shell Bourne) atau
    setenv DISPLAY :44# (csh / tcsh)
  2. xauth add $DISPLAY MIT-MAGIC-COOKIE-1 1234 # Cookie palsu hanya untuk tes ini
  3. ssh -X localhost env |grep DISPLAY

Hasil yang diharapkan: harus ada variabel DISPLAY yang diatur pada ujung remote dari sesi ssh-to-self. Jika Anda tidak mendapatkan hasil, server Anda kemungkinan tidak terkonfigurasi (mis. Pustaka X11 dan / atau xauthperintah mungkin tidak ada; atau konfigurasi sshd dapat diatur untuk menolak akses X11)

Di Mac: periksa apakah Xquartz terbaru

Sesuai jawaban Will Angley

Periksa ssh -vv -Xoutput

Pesan kesalahan yang Anda kutip adalah gejala yang dapat memiliki banyak penyebab. Coba lagi dengan , yang seharusnya memberi Anda petunjuk tambahan mengapa pengaturan terowongan X11 gagal.ssh -X -vv remotehost

Apakah Anda melihat pesan berikut muncul?

debug1: Tidak ada program xauth.
Jika begitu,

  1. Perhatikan di mana pada sistem klien Anda, xauthperintah berada:
    yang xauth
  2. Tambahkan yang berikut di bagian paling akhir ~ / .ssh / config Anda (dan tambahkan komentar untuk mengingatkan diri Anda agar tetap ada di masa mendatang):
    Tuan rumah *
        XAuthLocation / opt / X11 / bin / xauth
    
    Sesuaikan jalur ini sesuai temuan pada langkah 1 - Kredit ke Jan-Willem Arnold
DomQ
sumber
3

Seperti yang telah dijelaskan di atas, berikut ini bekerja untuk saya:

Edit ~ / .ssh / config untuk menambahkan baris

Host *
    XAuthLocation /opt/X11/bin/xauth

dan sekarang ssh -X hostname berfungsi (XQuartz 2.7.11, macOS 10.4 Mojave)

gembala
sumber
0

Saya sudah menginstal XQuartz 2.7.11 terbaru, tetapi saya pikir saya juga telah memperbarui OS beberapa kali sejak itu. Saya menginstal ulang XQuartz 2.7.11, dan sekarang berfungsi dengan baik.

Ulmo
sumber
-3

xauth tambahkan `hostname` / unix: 10 MIT-MAGIC-COOKIE-1` openssl rand -hex 16`

Marc Williams
sumber
1
Saya tidak mengerti ...
Pierre.Vriens