init.zsh 742 B

12345678910111213141516171819202122232425262728293031323334
  1. #
  2. # sets up ssh-agent
  3. #
  4. # don't do anything unless we can actually use ssh-agent
  5. if (( ! ${+commands[ssh-agent]} )); then
  6. return 1
  7. fi
  8. ssh-add -l &>/dev/null
  9. if (( ? == 2 )); then
  10. # Unable to contact the authentication agent
  11. # Load stored agent connection info
  12. local ssh_env="${HOME}/.ssh-agent"
  13. [[ -r ${ssh_env} ]] && source ${ssh_env} >/dev/null
  14. ssh-add -l &>/dev/null
  15. if (( ? == 2 )); then
  16. # Start agent and store agent connection info
  17. (umask 066; ssh-agent >! ${ssh_env})
  18. source ${ssh_env} >/dev/null
  19. fi
  20. fi
  21. # Load identities
  22. ssh-add -l &>/dev/null
  23. if (( ? == 1 )); then
  24. if (( ${#zssh_ids} > 0 )); then
  25. ssh-add "${HOME}/.ssh/${^zssh_ids[@]}" 2> /dev/null
  26. else
  27. ssh-add 2> /dev/null
  28. fi
  29. fi