Browse Source

ssh-agent: prevent environment file from flapping

On an OS X laptop, the variable `$HOST` changes a lot depending
on what wifi network you're connected to.  This causes a lot
of `~/.ssh/environment-$HOST` files to be created and
causes multiple ssh-agents to created.

Instead, use `scutil --get ComputerName` to get something
more stable.
Christian Höltje 10 years ago
parent
commit
cfe468f6f6
1 changed files with 10 additions and 2 deletions
  1. 10 2
      plugins/ssh-agent/ssh-agent.plugin.zsh

+ 10 - 2
plugins/ssh-agent/ssh-agent.plugin.zsh

@@ -27,7 +27,7 @@
 #   Florent Thoumie and Jonas Pfenniger
 #
 
-local _plugin__ssh_env=$HOME/.ssh/environment-$HOST
+local _plugin__ssh_env
 local _plugin__forwarding
 
 function _plugin__start_agent()
@@ -42,12 +42,20 @@ function _plugin__start_agent()
   . ${_plugin__ssh_env} > /dev/null
 
   # load identies
-  zstyle -a :omz:plugins:ssh-agent identities identities 
+  zstyle -a :omz:plugins:ssh-agent identities identities
   echo starting ssh-agent...
 
   /usr/bin/ssh-add $HOME/.ssh/${^identities}
 }
 
+# Get the filename to store/lookup the environment from
+if (( $+commands[scutil] )); then
+  # It's OS X!
+  _plugin__ssh_env="$HOME/.ssh/environment-$(scutil --get ComputerName)"
+else
+  _plugin__ssh_env="$HOME/.ssh/environment-$HOST"
+fi
+
 # test if agent-forwarding is enabled
 zstyle -b :omz:plugins:ssh-agent agent-forwarding _plugin__forwarding
 if [[ ${_plugin__forwarding} == "yes" && -n "$SSH_AUTH_SOCK" ]]; then