diff --git a/zsh/ssh b/zsh/ssh index cd53f4c..2d9073b 100644 --- a/zsh/ssh +++ b/zsh/ssh @@ -12,12 +12,18 @@ WRYN_SSH_DELIMITER=' *| ' [ -d "$HOME/.config/wryn" ] && [ ! -f "$WRYN_SSH_CONNECTION_LIST" ] && touch "$WRYN_SSH_CONNECTION_LIST"; WRYN_SSH_ADD_CREDENTIALS() { + local KEY_LIST=$(ssh-add -l | awk '{print $3;}') for key in $(grep -slR "PRIVATE" "$HOME/.ssh"); do - ssh-add "$key"; + [ -f "$key.pub" ] \ + && echo $KEY_LIST | grep -q $(awk '{print $NF;}' $key.pub) \ + || echo $KEY_LIST | grep -q $key \ + || ssh-add "$key"; done } function WRYN_REMOTE_CONNECTOR() { + WRYN_SSH_ADD_CREDENTIALS; + local COMMAND="$1"; local CONNECTION="$2";