<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
  <meta name="Generator" content="Kopano WebApp v8.4.90">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Allowing xfce4-session to use external ssh-agent</title>
</head>
<body>
<p style="padding: 0; margin: 0;"><span style="font-size: 11pt; font-family: tahoma, arial, helvetica, sans-serif;">Hi,<br /></span></p>
<p style="padding: 0; margin: 0;"><span style="font-size: 11pt; font-family: tahoma, arial, helvetica, sans-serif;"><br /></span></p>
<p style="padding: 0; margin: 0;"><span style="font-size: 11pt; font-family: tahoma, arial, helvetica, sans-serif;">I've been using xfce for almost two years after having used kde for 19.  I love xfce and I would like to thank each and every developer who has worked and is working on it.</span></p>
<p style="padding: 0; margin: 0;"><span style="font-size: 11pt; font-family: tahoma, arial, helvetica, sans-serif;"><br /></span></p>
<p style="padding: 0; margin: 0;"><span style="font-size: 11pt; font-family: tahoma, arial, helvetica, sans-serif;">I would like to request a feature and I am submitting a patch for your consideration.</span></p>
<p style="padding: 0; margin: 0;"><span style="font-size: 11pt; font-family: tahoma, arial, helvetica, sans-serif;"><br /></span></p>
<p style="padding: 0; margin: 0;"><span style="font-size: 11pt; font-family: tahoma, arial, helvetica, sans-serif;">I very often work on my machines remotely and start ssh-agent via a set of commands in .bashrc,  so I always have a running ssh-agent, even before starting xfce.  I would like to xfce to use the already running ssh-agent.</span></p>
<p style="padding: 0; margin: 0;"><span style="font-size: 11pt; font-family: tahoma, arial, helvetica, sans-serif;"><br /></span></p>
<p style="padding: 0; margin: 0;"><span style="font-size: 11pt; font-family: tahoma, arial, helvetica, sans-serif;">Here's a very crude patch that I've tested and have confirmed as working.  I'm sure I am forgetting some cases.  But I would like your critique and input on the feasibility of this patch making it into xfce.</span></p>
<p style="padding: 0; margin: 0;"><span style="font-size: 11pt; font-family: tahoma, arial, helvetica, sans-serif;"><br /></span></p>
<p style="padding: 0; margin: 0;"><span style="font-size: 11pt; font-family: tahoma, arial, helvetica, sans-serif;"></span></p>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">--- xfce4-session-4.13.0.original/xfce4-session/xfsm-startup.c  2014-09-28 17:51:01.000000000 +0300</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">+++ xfce4-session-4.13.0/xfce4-session/xfsm-startup.c   2017-11-19 02:15:05.108424383 +0200</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">@@ -199,6 +199,7 @@</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;"> {</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">   gchar       *ssh_agent;</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">   gchar       *ssh_agent_path = NULL;</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">+  gchar       *ssh_agent_socket = NULL;</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">   gchar       *gpg_agent_path = NULL;</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">   gchar       *cmd;</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">   pid_t        agentpid;</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">@@ -256,6 +257,14 @@</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">         }</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">       g_free (ssh_agent);</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">     }</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">+  else</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">+    {</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">+      if (xfconf_channel_get_bool (channel, "/startup/ssh-agent/external", TRUE))</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">+        {</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">+          ssh_agent_socket = xfconf_channel_get_string (channel, "/startup/ssh-agent/external_socket", NULL);</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">+          g_setenv ("SSH_AUTH_SOCK", ssh_agent_socket, TRUE);</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">+        }</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">+    }</span></div>
<div><br /></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">   if (G_LIKELY (ssh_agent_path != NULL || gpgagent_ssh_enabled))</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">     {</span></div>
<p><span style="font-size: 11pt; font-family: tahoma, arial, helvetica, sans-serif;"><br /></span></p>
<p><span style="font-size: 11pt; font-family: tahoma, arial, helvetica, sans-serif;">In order to use an external ssh-agent, you need to set two new properties:</span></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;"><br /></span></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;"><em>xfconf-query -c xfce4-session -p /startup/ssh-agent/external -n -t string -s true</em></span></p>
<p><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;"><em>xfconf-query -c xfce4-session -p /startup/ssh-agent/external_socket -n -t string -s PATH_TO_SSH_SOCKET</em></span></p>
<p><span style="font-size: 11pt; font-family: tahoma, arial, helvetica, sans-serif;"></span></p>
<div> </div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">I start ssh-agent like so:</span></div>
<div> </div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">ssh-agent -a </span><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">PATH_TO_SSH_SOCKET so the socket location never changes.</span></div>
<div> </div>
<div> </div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">I would appreciate your feedback.</span></div>
<div> </div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">Thanks,</span></div>
<div><span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 11pt;">IvanK.</span></div>
</body>
</html>