diff --git a/modules/ssh/init.zsh b/modules/ssh/init.zsh index 447846f56fb..320f76352d7 100644 --- a/modules/ssh/init.zsh +++ b/modules/ssh/init.zsh @@ -27,22 +27,22 @@ else source "$_ssh_agent_env" 2> /dev/null fi -# Load identities. -if ssh-add -l 2>&1 | grep 'The agent has no identities'; then - zstyle -a ':prezto:module:ssh:load' identities '_ssh_identities' - if (( ${#identities} > 0 )); then - ssh-add "$_ssh_dir/${^_ssh_identities[@]}" - else - ssh-add - fi -fi - # Create a persistent SSH authentication socket. if [[ -S "$SSH_AUTH_SOCK" && "$SSH_AUTH_SOCK" != "$_ssh_agent_sock" ]]; then ln -sf "$SSH_AUTH_SOCK" "$_ssh_agent_sock" export SSH_AUTH_SOCK="$_ssh_agent_sock" fi +# Load identities. +if ssh-add -l 2>&1 | grep -q 'The agent has no identities'; then + zstyle -a ':prezto:module:ssh:load' identities '_ssh_identities' + if (( ${#_ssh_identities} > 0 )); then + ssh-add "$_ssh_dir/${^_ssh_identities[@]}" 2> /dev/null + else + ssh-add 2> /dev/null + fi +fi + # Clean up. unset _ssh_{dir,identities} _ssh_agent_{env,sock}