summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorMichael Stucki <michael@stucki.io>2018-07-01 18:20:34 +0200
committerMarc Cornellà <marc.cornella@live.com>2018-07-01 18:20:34 +0200
commit302270174d8173be35e8c1b464a0d9e731650c15 (patch)
tree23e37345d1c723e41caeeb23419e522cff4fbefb /plugins
parentb09890a3e42b82810c6a2c79b3cf427fbf136a65 (diff)
downloadzsh-302270174d8173be35e8c1b464a0d9e731650c15.tar.gz
zsh-302270174d8173be35e8c1b464a0d9e731650c15.tar.bz2
zsh-302270174d8173be35e8c1b464a0d9e731650c15.zip
Use existing ssh-agent when invoking a sudo shell (#3891)
When invoking a shell as root using ```sudo -s```, the ssh-agent plugin starts a new agent although it already exists. The problem boils down to a check if ssh-agent is running using ```ps x```. If that is extended to ```ps ax``` for root, then the existing ssh-agent will still work.
Diffstat (limited to 'plugins')
-rw-r--r--plugins/ssh-agent/ssh-agent.plugin.zsh7
1 files changed, 6 insertions, 1 deletions
diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh
index 20f97c6f1..fe4946c6d 100644
--- a/plugins/ssh-agent/ssh-agent.plugin.zsh
+++ b/plugins/ssh-agent/ssh-agent.plugin.zsh
@@ -30,7 +30,12 @@ if [[ $_agent_forwarding == "yes" && -n "$SSH_AUTH_SOCK" ]]; then
elif [[ -f "$_ssh_env_cache" ]]; then
# Source SSH settings, if applicable
. $_ssh_env_cache > /dev/null
- ps x | grep ssh-agent | grep -q $SSH_AGENT_PID || {
+ if [[ $USER == "root" ]]; then
+ FILTER="ax"
+ else
+ FILTER="x"
+ fi
+ ps $FILTER | grep ssh-agent | grep -q $SSH_AGENT_PID || {
_start_agent
}
else