diff options
-rw-r--r-- | zsh/ssh.zsh | 31 | ||||
-rwxr-xr-x | zshrc | 2 |
2 files changed, 10 insertions, 23 deletions
diff --git a/zsh/ssh.zsh b/zsh/ssh.zsh index f0ceafa..991e4dc 100644 --- a/zsh/ssh.zsh +++ b/zsh/ssh.zsh @@ -1,22 +1,9 @@ -SSH_ENV="$HOME/.ssh/agent-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
\ No newline at end of file +if [ -z "$SSH_AUTH_SOCK" ]; then + # Check for a currently running instance of the agent + RUNNING_AGENT="`ps -ax | grep 'ssh-agent -s' | grep -v grep | wc -l | tr -d '[:space:]'`" + if [ "$RUNNING_AGENT" = "0" ]; then + # Launch a new instance of the agent + ssh-agent -s &> $HOME/.ssh/ssh-agent + fi + eval `cat $HOME/.ssh/ssh-agent` > /dev/null +fi @@ -14,11 +14,11 @@ hash -d d=${HOME}/docker [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]] && source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" source $ZSH_BASE/antigen/antigen.zsh +source $ZSH_BASE/zsh/ssh.zsh source $ZSH_BASE/zsh/setopt.zsh source $ZSH_BASE/zsh/prompt.zsh source $ZSH_BASE/zsh/aliases.zsh source $ZSH_BASE/zsh/keybindings.zsh -[ ! -n "${SSH_AUTH_SOCK+1}" ] && source $ZSH_BASE/zsh/ssh.zsh [ -n "${WSL_DISTRO_NAME+1}" ] && source $ZSH_BASE/zsh/wsl.zsh antigen use oh-my-zsh |