Aqui está o que eu usei para resolver este problema para shells ssh. Eu alias o comando ssh para primeiro checar se as chaves foram carregadas e se não, carregue-as primeiro, então execute o comando ssh:
alias ssh='[[ 'ssh-add -l' == "The agent has no identities." ]] && ssh-add; ssh'
Eu ponho isso em minhas .alias e obtenho de .bashrc