Today I learned about keychain and how to use it to manage ssh and gpg agents.
Keychain create one ssh-agent per system, unlike ssh-agent that creates one agent per login session (if placed in zprofile) and require multiple ssh-add for keys.
In addition to that ssh-agent is not compatible with cron jobs or shell scripts because they do not inherit the SSH_AUTH_SOCK variable from the environnement.
# run a ssh agent and add the id_rsa key (using keychain) eval `keychain --eval --agents ssh id_rsa`
|–agents||specify agents to run (gpg or ssh)|
|–clear||clear the cached keys for every new login|
|-k [all|mine]||kill all the agents, or only agents started by keychain|
|–dir||specify the dir where the SSH_AUTH_SOCK will be cached|