summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2019-01-19 18:00:04 +0100
committerGitHub <noreply@github.com>2019-01-19 18:00:04 +0100
commit9d1dd24e3568ebbcce093bb351ea776a0bf2c0ff (patch)
treee1c98a4e0b062a2502b5b5cc2d61b45a8d952560
parent586ca16902d9dae4d95d5256a824572f60219c83 (diff)
downloadzsh-9d1dd24e3568ebbcce093bb351ea776a0bf2c0ff.tar.gz
zsh-9d1dd24e3568ebbcce093bb351ea776a0bf2c0ff.tar.bz2
zsh-9d1dd24e3568ebbcce093bb351ea776a0bf2c0ff.zip
ssh-agent: add default keys if no zstyle identities were set (#7520)
-rw-r--r--plugins/ssh-agent/ssh-agent.plugin.zsh12
1 files changed, 11 insertions, 1 deletions
diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh
index 1cc5630e1..0a204309e 100644
--- a/plugins/ssh-agent/ssh-agent.plugin.zsh
+++ b/plugins/ssh-agent/ssh-agent.plugin.zsh
@@ -21,6 +21,16 @@ function _add_identities() {
return
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
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"
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