X-Git-Url: https://src.twobees.de/?a=blobdiff_plain;f=stow%2Foh-my-zsh%2F.oh-my-zsh%2Fplugins%2Fssh-agent%2Fssh-agent.plugin.zsh;fp=stow%2Foh-my-zsh%2F.oh-my-zsh%2Fplugins%2Fssh-agent%2Fssh-agent.plugin.zsh;h=0000000000000000000000000000000000000000;hb=1a8e170bbe5c6641a26ab1ce2e6ce6c5c1faa4cd;hp=78ac46b13815a199807e94e7401839241a364634;hpb=475ba35502579302593f4735c853c49ef1845dcb;p=dotfiles.git diff --git a/stow/oh-my-zsh/.oh-my-zsh/plugins/ssh-agent/ssh-agent.plugin.zsh b/stow/oh-my-zsh/.oh-my-zsh/plugins/ssh-agent/ssh-agent.plugin.zsh deleted file mode 100644 index 78ac46b..0000000 --- a/stow/oh-my-zsh/.oh-my-zsh/plugins/ssh-agent/ssh-agent.plugin.zsh +++ /dev/null @@ -1,108 +0,0 @@ -# Get the filename to store/lookup the environment from -ssh_env_cache="$HOME/.ssh/environment-$SHORT_HOST" - -function _start_agent() { - # Check if ssh-agent is already running - if [[ -f "$ssh_env_cache" ]]; then - . "$ssh_env_cache" > /dev/null - - # Test if $SSH_AUTH_SOCK is visible - zmodload zsh/net/socket - if [[ -S "$SSH_AUTH_SOCK" ]] && zsocket "$SSH_AUTH_SOCK" 2>/dev/null; then - return 0 - fi - fi - - # Set a maximum lifetime for identities added to ssh-agent - local lifetime - zstyle -s :omz:plugins:ssh-agent lifetime lifetime - - # start ssh-agent and setup environment - zstyle -t :omz:plugins:ssh-agent quiet || echo >&2 "Starting ssh-agent ..." - ssh-agent -s ${lifetime:+-t} ${lifetime} | sed '/^echo/d' >! "$ssh_env_cache" - chmod 600 "$ssh_env_cache" - . "$ssh_env_cache" > /dev/null -} - -function _add_identities() { - local id file line sig lines - local -a identities loaded_sigs loaded_ids not_loaded - zstyle -a :omz:plugins:ssh-agent identities identities - - # check for .ssh folder presence - if [[ ! -d "$HOME/.ssh" ]]; then - 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 and filenames - if lines=$(ssh-add -l); then - for line in ${(f)lines}; do - loaded_sigs+=${${(z)line}[2]} - loaded_ids+=${${(z)line}[3]} - done - fi - - # add identities if not already loaded - for id in $identities; do - # if id is an absolute path, make file equal to id - [[ "$id" = /* ]] && file="$id" || file="$HOME/.ssh/$id" - # check for filename match, otherwise try for signature match - if [[ ${loaded_ids[(I)$file]} -le 0 ]]; then - sig="$(ssh-keygen -lf "$file" | awk '{print $2}')" - [[ ${loaded_sigs[(I)$sig]} -le 0 ]] && not_loaded+=("$file") - fi - done - - # abort if no identities need to be loaded - if [[ ${#not_loaded} -eq 0 ]]; then - return - fi - - # pass extra arguments to ssh-add - local args - zstyle -a :omz:plugins:ssh-agent ssh-add-args args - - # if ssh-agent quiet mode, pass -q to ssh-add - zstyle -t :omz:plugins:ssh-agent quiet && args=(-q $args) - - # use user specified helper to ask for password (ksshaskpass, etc) - local helper - zstyle -s :omz:plugins:ssh-agent helper helper - - if [[ -n "$helper" ]]; then - if [[ -z "${commands[$helper]}" ]]; then - echo >&2 "ssh-agent: the helper '$helper' has not been found." - else - SSH_ASKPASS="$helper" ssh-add "${args[@]}" ${^not_loaded} < /dev/null - return $? - fi - fi - - ssh-add "${args[@]}" ${^not_loaded} -} - -# Add a nifty symlink for screen/tmux if agent forwarding is enabled -if zstyle -t :omz:plugins:ssh-agent agent-forwarding \ - && [[ -n "$SSH_AUTH_SOCK" && ! -L "$SSH_AUTH_SOCK" ]]; then - ln -sf "$SSH_AUTH_SOCK" /tmp/ssh-agent-$USERNAME-screen -else - _start_agent -fi - -# Don't add identities if lazy-loading is enabled -if ! zstyle -t :omz:plugins:ssh-agent lazy; then - _add_identities -fi - -unset agent_forwarding ssh_env_cache -unfunction _start_agent _add_identities