Comment empêcher la connexion à distance ssh de casser dbus?

10

J'utilise openSUSE 11.3 sur mon poste de travail au travail sous KDE, je n'y ai pas accès root. Le shell par défaut a été défini sur tcsh. Lorsque je suis connecté à mon poste de travail et que je me connecte à distance à partir de mon MacBook exécutant OS X 10.6 en utilisant ssh, comme ceci:

ssh -X -C [email protected]

tout fonctionne bien; cependant, une fois que j'ai terminé, j'obtiens des erreurs DBUS sur ma session de poste de travail chaque fois que j'essaie de lancer quoi que ce soit avec une interface graphique, y compris, malheureusement, la boîte de dialogue de déconnexion à partir du panneau de la barre des tâches. Je me lasse de tuer startkdejuste pour me déconnecter dans ces situations.

En ligne, j'ai trouvé beaucoup d'instructions pour se connecter à une session dbus existante à l'aide de ssh, mais j'aimerais faire le contraire, laisser la session dbus existante complètement intacte par la session de connexion à distance ssh.

Si je fais

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

cela fonctionne, donc ce n'est que le shell de connexion interactif qui brise dbus. Comment dois-je modifier ~/.cshrc? Gardez à l' esprit que je n'ai pas la permission de modifier /etc/cshrc, /etc/loginetc.

Je peux lister le contenu de ces fichiers ici, si nécessaire.

Mise à jour:

Voici un gros fichier tar avec tous les scripts que j'ai pu trouver:

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

user1079118
la source
Oui, veuillez publier le contenu des fichiers d'initialisation qui font la différence. Veuillez également décrire précisément les commandes qui interrompent la session locale (est-ce en cours d'exécution dbus-launch konsolequi interrompt la session locale? Ou simplement une connexion ssh interactive sur laquelle vous appuyez exitimmédiatement?).
Gilles 'SO- arrête d'être méchant'
@ Gilles Hmm, j'ai essayé de modifier ma question avec le contenu des fichiers, mais il y a trop de caractères. Je vais découvrir comment et où les télécharger. En attendant, dbus-launch konsole ne rompt pas la session locale, tandis qu'une connexion ssh interactive à partir de la ligne de commande suivie immédiatement de exit le sera. En fait, même juste faire un rsync casse également dbus (pour moi, il semble étrange que rsync exécute les scripts shell de connexion par défaut, mais c'est le cas).
user1079118
Essayez pastebin.com pour les fichiers volumineux.
Gilles 'SO- arrête d'être méchant'

Réponses:

1

En fait, les sessions dbus sont par machine et par écran X.

Lorsque vous effectuez une session SSH distante, vous utilisez un affichage X11 différent (généralement localhost: 10)

Si vous tuez tous les dbus et les lancez sur la session SSH, cela fonctionne ... pour la session SSH. Mais de toute évidence, cela interrompt les autres sessions dbus de la machine.

Ce qui est nécessaire est de vérifier si une session pour la machine + écran existe déjà, si oui, utilisez-la, sinon lancez un nouveau dbus pour cette combinaison et informez-en la session.

Regardez https://unix.stackexchange.com/a/188877/32769 pour un bloc bash que vous pouvez mettre dans votre fichier $ HOME / .bash_profile pour faire ces tests et faire correctement la bonne chose.

Pablo Saratxaga
la source