如何防止 ssh 远程登录破坏 dbus?

use*_*118 10 ssh opensuse kde tcsh d-bus

我在 KDE 下工作的工作站上运行 openSUSE 11.3,但我没有 root 访问权限。默认外壳已设置为tcsh. 当我登录到我的工作站并从运行 OS X 10.6 的 MacBook 使用 远程登录时ssh,如下所示:

ssh -X -C user@workstation.edu
Run Code Online (Sandbox Code Playgroud)

一切正常;然而,一旦我完成,每当我尝试使用 GUI 启动任何东西时,我的工作站会话中都会出现 DBUS 错误,不幸的是,包括任务栏面板中的注销对话框。startkde在这些情况下,我已经厌倦了为了退出而杀人。

在网上我找到了很多关于使用 ssh 连接到现有 dbus 会话的说明,但我想做相反的事情,让现有的 dbus 会话完全不受 ssh 远程登录会话的影响。

如果我做

ssh -X -C user@workstation.edu dbus-launch konsole
Run Code Online (Sandbox Code Playgroud)

这是有效的,所以只有交互式登录 shell 破坏了 dbus。我应该如何修改~/.cshrc?请记住,我没有权限修改/etc/cshrc/etc/login等等。

如有必要,我可以在此处列出这些文件的内容。

更新:

这是一个包含我能找到的所有脚本的大 tar 文件:

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

Pab*_*aga 1

实际上 dbus 会话是针对每台机器和每台 X 显示器的。

当您进行远程 SSH 会话时,您使用不同的 X11 显示(通常为 localhost:10)

如果您杀死所有 dbus 并在 SSH 会话上启动它,它就可以工作......对于 SSH 会话。但显然它会破坏机器中的所有其他 dbus 会话。

需要的是检查机器+显示器的会话是否已经存在,如果是,则使用它,如果不存在,则为该组合启动一个新的 dbus,并让会话知道它。

查看https://unix.stackexchange.com/a/188877/32769 的 bash 块,您可以将其放入 $HOME/.bash_profile 文件中来执行这些测试并正确执行正确的操作。