While most desktop Linux OS’s have decent support for ssh-agent, it may be something you have to add to certain Linux or *BSD disto’s. I’ve been using the following to load my private key(s) the first time I login, and hold them in memory for subsequent sessions.
SSH_ENV="$HOME/.ssh/environment" function start_agent { echo "Initialising new SSH agent..." (umask 066; /usr/bin/ssh-agent > "${SSH_ENV}") . "${SSH_ENV}" > /dev/null /usr/bin/ssh-add; } # Source SSH settings, if applicable if [ -f "${SSH_ENV}" ]; then . "${SSH_ENV}" > /dev/null ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { start_agent; } else start_agent; fi if [ -z "$SSH_AUTH_SOCK" ]; then eval ssh-agent -s ssh-add fi