Bagaimana cara mencegah ssh remote login dari melanggar dbus?

10

Saya menjalankan openSUSE 11.3 di workstation saya di kantor di bawah KDE, saya tidak punya akses root untuk itu. Shell default telah diatur ke tcsh. Ketika saya login di workstation saya dan login dari jarak jauh dari MacBook saya menggunakan OS X 10.6 menggunakan ssh, seperti:

ssh -X -C [email protected]

semuanya bekerja dengan baik; Namun, begitu selesai, saya mendapatkan kesalahan DBUS di sesi workstation saya setiap kali saya mencoba meluncurkan sesuatu dengan GUI, termasuk, sayangnya, kotak dialog logout dari panel task bar. Aku bosan membunuh startkdehanya untuk logout dalam situasi ini.

Online Saya telah menemukan banyak instruksi untuk menghubungkan ke sesi dbus yang ada menggunakan ssh, tetapi saya ingin melakukan yang sebaliknya, biarkan sesi dbus yang ada benar-benar tidak tersentuh oleh sesi login jarak jauh ssh.

Jika aku melakukan

ssh -X -C [email protected] dbus-launch konsole

yang berfungsi, jadi itu hanya shell login interaktif yang melanggar dbus. Bagaimana saya harus memodifikasi ~/.cshrc? Perlu diingat bahwa saya tidak memiliki izin untuk memodifikasi /etc/cshrc, /etc/logindll

Saya dapat mencantumkan konten file-file itu di sini, jika perlu.

Memperbarui:

Ini adalah file tar besar dengan semua skrip yang bisa saya temukan:

http://dl.dropbox.com/u/17203983/cshrc.tgz

pengguna1079118
sumber
Ya, silakan posting konten file inisialisasi yang membuat perbedaan. Juga, tolong jelaskan dengan tepat perintah apa yang memecah sesi lokal (apakah itu berjalan dbus-launch konsoleyang memecah sesi lokal? Atau hanya login ssh interaktif di mana Anda menekan exitsegera?).
Gilles 'SANGAT berhenti menjadi jahat'
@Gilles Hmm, saya mencoba mengedit pertanyaan saya dengan isi file, tetapi ada terlalu banyak karakter. Saya akan mencari tahu bagaimana dan di mana saya dapat mengunggahnya. Sementara itu, konsole dbus-launch tidak merusak sesi lokal, sementara login ssh interaktif dari baris perintah segera diikuti oleh exit. Bahkan, bahkan hanya melakukan rsync juga memecah dbus (bagi saya tampaknya aneh bahwa rsync menjalankan skrip shell login secara default, tetapi ia melakukannya).
user1079118
Coba pastebin.com untuk file besar.
Gilles 'SO- stop being evil'

Jawaban:

1

Sebenarnya sesi dbus adalah per mesin dan per tampilan X.

Ketika Anda melakukan sesi SSH jarak jauh, Anda menggunakan tampilan X11 yang berbeda (biasanya localhost: 10)

Jika Anda membunuh semua dbus dan meluncurkannya di sesi SSH itu berfungsi ... untuk sesi SSH. Tapi jelas itu merusak semua sesi dbus lain di mesin.

Yang diperlukan adalah memeriksa apakah sesi untuk tampilan mesin + sudah ada, jika ya gunakan, jika tidak meluncurkan dbus baru untuk kombinasi itu dan biarkan sesi mengetahuinya.

Lihatlah https://unix.stackexchange.com/a/188877/32769 untuk blok bash yang dapat Anda masukkan dalam file $ HOME / .bash_profile Anda untuk melakukan tes tersebut dan melakukan hal yang benar dengan benar.

Pablo Saratxaga
sumber