diff --git a/.zshrc b/.zshrc index 9f71089..d1068bd 100644 --- a/.zshrc +++ b/.zshrc @@ -99,3 +99,27 @@ source $HOME/.zsh_functions # set PATH so it includes user's private bin if it exists PATH="$HOME/.local/bin:$HOME/bin:$PATH" +# initialize and load SSH-AGENT +# https://stackoverflow.com/a/18915067 +SSH_ENV="$HOME/.ssh/environment" + +function start_agent { + echo "Initialising new SSH agent..." + /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}" + echo succeeded + chmod 600 "${SSH_ENV}" + . "${SSH_ENV}" > /dev/null + /usr/bin/ssh-add; +} + +# Source SSH settings, if applicable + +if [ -f "${SSH_ENV}" ]; then + . "${SSH_ENV}" > /dev/null + #ps ${SSH_AGENT_PID} doesn't work under cywgin + ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { + start_agent; + } +else + start_agent; +fi