Skip to content

Commit

Permalink
ssh-agent: autoload identities in one go (#7507)
Browse files Browse the repository at this point in the history
With this PR the ssh-agent plugin loads all identities which are not yet
loaded in a single call to ssh-add. If a passphrase is shared between
loaded identities it only needs to be entered once.

Fixes #7506
  • Loading branch information
G33KatWork authored and mcornella committed Jan 14, 2019
1 parent 2a60385 commit 9329efd
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions plugins/ssh-agent/ssh-agent.plugin.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ function _start_agent() {

function _add_identities() {
local id line sig
local -a identities loaded signatures
local -a identities loaded not_loaded signatures
zstyle -a :omz:plugins:ssh-agent identities identities

# check for .ssh folder presence
Expand All @@ -33,8 +33,10 @@ function _add_identities() {
for sig in $signatures; do
id="$(cut -f2 <<< $sig)"
sig="$(cut -f1 <<< $sig)"
[[ ${loaded[(I)$sig]} -le 0 ]] && ssh-add $HOME/.ssh/$id
[[ ${loaded[(I)$sig]} -le 0 ]] && not_loaded+="$HOME/.ssh/$id"
done

if [[ -n "$not_loaded" ]] && ssh-add ${^not_loaded}
}

# Get the filename to store/lookup the environment from
Expand Down

0 comments on commit 9329efd

Please sign in to comment.