ssh-agent: add default keys if no zstyle identities were set (#7520)

This commit is contained in:
Marc Cornellà 2019-01-19 18:00:04 +01:00 committed by GitHub
parent 586ca16902
commit 9d1dd24e35
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -21,6 +21,16 @@ function _add_identities() {
return return
fi fi
# add default keys if no identities were set up via zstyle
# this is to mimic the call to ssh-add with no identities
if [[ ${#identities} -eq 0 ]]; then
# key list found on `ssh-add` man page's DESCRIPTION section
for id in id_rsa id_dsa id_ecdsa id_ed25519 identity; do
# check if file exists
[[ -f "$HOME/.ssh/$id" ]] && identities+=$id
done
fi
# get list of loaded identities' signatures # get list of loaded identities' signatures
for line in ${(f)"$(ssh-add -l)"}; do loaded+=${${(z)line}[2]}; done for line in ${(f)"$(ssh-add -l)"}; do loaded+=${${(z)line}[2]}; done
@ -36,7 +46,7 @@ function _add_identities() {
[[ ${loaded[(I)$sig]} -le 0 ]] && not_loaded+="$HOME/.ssh/$id" [[ ${loaded[(I)$sig]} -le 0 ]] && not_loaded+="$HOME/.ssh/$id"
done done
if [[ -n "$not_loaded" ]] && ssh-add ${^not_loaded} [[ -n "$not_loaded" ]] && ssh-add ${^not_loaded}
} }
# Get the filename to store/lookup the environment from # Get the filename to store/lookup the environment from