From 9d1dd24e3568ebbcce093bb351ea776a0bf2c0ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 19 Jan 2019 18:00:04 +0100 Subject: [PATCH] ssh-agent: add default keys if no zstyle identities were set (#7520) --- plugins/ssh-agent/ssh-agent.plugin.zsh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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