Public bug reported: Hello, I'm using ubuntu v14 with unity. The problem I'm having is with SSH_AUTH_SOCK. I want to create an X-session and have my unix socket set in SSH_AUTH_SOCK. The session is created successfully but if I open terminal into that session and see the content of SSH_AUTH_SOCK, its different from what I've set.
I investigated this issue and found that gnome-keyring checks if SSH_AUTH_SOCK is empty in /usr/share/upstart/sessions/gnome-keyring- ssh.conf and if it is, then it creates the socket and sets SSH_AUTH_SOCK. I've even added logs in this file and it clearly exits in [ -z "$SSH_AUTH_SOCK" ] || { stop; exit 0; }. Then I set the X-GNOME- Autostart-enabled=false in ~/.config/autostart/gnome-keyring-ssh.desktop and for some reason the value in SSH_AUTH_SOCK was correct(the one that I've set in init). I deleted X-GNOME-Autostart-enabled=false and then manually checked and some of the proccesses in this session had my value in SSH_AUTH_SOCK and some of them didn't. I checked with lsof and the other SSH_AUTH_SOCK was listen by gnome-keyring, so I assumed that when gnome-keyring is launched, it creates its own SSH_AUTH_SOCK and overwrites the env variable. I downloaded the source code of gnome-keyring and found that it creates a SSH_AUTH_SOCK and sets it in it's environment(but for some reason when I check /proc/<pid_of_gnome-keyring>/environ there is my path in SSH_AUTH_SOCK). I also checked if X-GNOME-Autostart-enabled was hardcoded in gnome-keyring but it wasn't. I've searched in internet and found that gnome-session might be involved in this. Downloaded the source code of gnome-sesison and it clearly has hardcoded X-GNOME-Autostart-enabled. Then I found this interesting comment in it: capture output from gnome-keyring-daemon and set SSH_AUTH_SOCK and GNOME_KEYRING_PID env variables properly. and as I understand(please correct me if I'm wrong) those two procceses (gnome-keyring and gnome-session) communicate with each other. gnome- session process checks if X-GNOME-Autostart-enabled is set and if it isn't it asks gnome-keyring to create new SSH_AUTH_SOCK. So it appears that gnome-keyring doesn't care what is in /usr/share/upstart/sessions/gnome-keyring-ssh.conf. Plus it doesn't care if SSH_AUTH_SOCK is set or not. The only option to disable gnome-keyring from creating one, is to set the X-GNOME-Autostart-enabled. P.S. On ubuntu v16 when I create session and open terminal in it, there is my path set in SSH_ATUH_SOCK. My info -> https://pastebin.com/j1TNzZU9 ** Affects: gnome-keyring (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to gnome-keyring in Ubuntu. https://bugs.launchpad.net/bugs/1748167 Title: SSH_AUTH_SOCK is overwritten by gnome-keyring Status in gnome-keyring package in Ubuntu: New Bug description: Hello, I'm using ubuntu v14 with unity. The problem I'm having is with SSH_AUTH_SOCK. I want to create an X-session and have my unix socket set in SSH_AUTH_SOCK. The session is created successfully but if I open terminal into that session and see the content of SSH_AUTH_SOCK, its different from what I've set. I investigated this issue and found that gnome-keyring checks if SSH_AUTH_SOCK is empty in /usr/share/upstart/sessions/gnome-keyring- ssh.conf and if it is, then it creates the socket and sets SSH_AUTH_SOCK. I've even added logs in this file and it clearly exits in [ -z "$SSH_AUTH_SOCK" ] || { stop; exit 0; }. Then I set the X -GNOME-Autostart-enabled=false in ~/.config/autostart/gnome-keyring- ssh.desktop and for some reason the value in SSH_AUTH_SOCK was correct(the one that I've set in init). I deleted X-GNOME-Autostart-enabled=false and then manually checked and some of the proccesses in this session had my value in SSH_AUTH_SOCK and some of them didn't. I checked with lsof and the other SSH_AUTH_SOCK was listen by gnome-keyring, so I assumed that when gnome-keyring is launched, it creates its own SSH_AUTH_SOCK and overwrites the env variable. I downloaded the source code of gnome-keyring and found that it creates a SSH_AUTH_SOCK and sets it in it's environment(but for some reason when I check /proc/<pid_of_gnome-keyring>/environ there is my path in SSH_AUTH_SOCK). I also checked if X-GNOME-Autostart-enabled was hardcoded in gnome-keyring but it wasn't. I've searched in internet and found that gnome-session might be involved in this. Downloaded the source code of gnome-sesison and it clearly has hardcoded X-GNOME-Autostart-enabled. Then I found this interesting comment in it: capture output from gnome-keyring-daemon and set SSH_AUTH_SOCK and GNOME_KEYRING_PID env variables properly. and as I understand(please correct me if I'm wrong) those two procceses (gnome-keyring and gnome-session) communicate with each other. gnome-session process checks if X-GNOME-Autostart-enabled is set and if it isn't it asks gnome-keyring to create new SSH_AUTH_SOCK. So it appears that gnome-keyring doesn't care what is in /usr/share/upstart/sessions/gnome-keyring-ssh.conf. Plus it doesn't care if SSH_AUTH_SOCK is set or not. The only option to disable gnome- keyring from creating one, is to set the X-GNOME-Autostart-enabled. P.S. On ubuntu v16 when I create session and open terminal in it, there is my path set in SSH_ATUH_SOCK. My info -> https://pastebin.com/j1TNzZU9 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/1748167/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp