web-dev-qa-db-ja.com

sshリモートログインがdbusを壊さないようにするにはどうすればよいですか?

KDEの下で仕事をしているワークステーションでopenSUSE11.3を実行していますが、ルートアクセス権がありません。デフォルトのシェルはtcshに設定されています。ワークステーションにログインし、OS X10.6を実行しているMacBookからsshを使用してリモートでログインすると、次のようになります。

ssh -X -C [email protected]

すべてが正常に機能します。ただし、作業が完了すると、GUIを使用して何かを起動しようとすると、ワークステーションセッションでDBUSエラーが発生します。これには、残念ながら、タスクバーパネルからのログアウトダイアログボックスが含まれます。このような状況でログアウトするためだけにstartkdeを殺すのにうんざりしています。

オンラインで、sshを使用して既存のdbusセッションに接続するための多くの手順を見つけましたが、逆に、既存のdbusセッションをsshリモートログインセッションの影響を受けないようにします。

私が行った場合

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

それは機能するので、dbusを壊しているのはインタラクティブログインシェルだけです。 ~/.cshrcをどのように変更すればよいですか? /etc/cshrc/etc/loginなどを変更する権限がないことに注意してください。

必要に応じて、これらのファイルの内容をここに一覧表示できます。

更新:

これが私が見つけたすべてのスクリプトを含む大きなtarファイルです:

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

10
user1079118

実際、dbusセッションはマシンごとおよびXディスプレイごとです。

リモートSSHセッションを実行するときは、別のX11ディスプレイ(通常はlocalhost:10)を使用します。

すべてのdbusを強制終了し、SSHセッションで起動すると、SSHセッションで機能します。しかし、明らかにそれはマシン内の他のすべてのdbusセッションを壊します。

必要なのは、machine + displayのセッションがすでに存在するかどうかを確認し、存在する場合はそれを使用し、存在しない場合はその組み合わせの新しいdbusを起動して、セッションに通知することです。

https://unix.stackexchange.com/a/188877/32769 を見てください。$ HOME/.bash_profileファイルに配置してこれらのテストを実行し、正しいことを適切に実行できるbashブロックを確認してください。

1
Pablo Saratxaga