diff options
author | Michael Stucki <michael@stucki.io> | 2018-07-01 18:20:34 +0200 |
---|---|---|
committer | Marc Cornellà <marc.cornella@live.com> | 2018-07-01 18:20:34 +0200 |
commit | 302270174d8173be35e8c1b464a0d9e731650c15 (patch) | |
tree | 23e37345d1c723e41caeeb23419e522cff4fbefb /plugins | |
parent | b09890a3e42b82810c6a2c79b3cf427fbf136a65 (diff) | |
download | zsh-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.zsh | 7 |
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 |