Script: --------- ================================================================================ #!/usr/bin/sh ###-------------------------------------------------------------------------### # environment ###-------------------------------------------------------------------------### SECURITY_DIR=~/security LOGIN=`whoami` AGENT_INFO_FILE="${LOGIN}-agent-info" ###-------------------------------------------------------------------------### # functions ###-------------------------------------------------------------------------### #******************************************************* # start agent and load key #******************************************************* load_keys () { echo "\nChecking for existance of running ssh-agent..." if [ -f ${SECURITY_DIR}/${AGENT_INFO_FILE} ]; then . ${SECURITY_DIR}/${AGENT_INFO_FILE} ps -p ${SSH_AGENT_PID} if [ $? -eq 0 ]; then echo "Your agent appears to be running." else echo "Your agent doesn't appear to be running." STARTAGENT=1 fi else STARTAGENT=1 fi if [ "${STARTAGENT}" -eq 1 ]; then echo "Starting key agent..." ssh-agent | head -2 > ${SECURITY_DIR}/${AGENT_INFO_FILE} chmod g-r,g-w,g-x,o-r,o-w,o-x ${SECURITY_DIR}/${AGENT_INFO_FILE} . ${SECURITY_DIR}/${AGENT_INFO_FILE} chmod g-r,g-w,g-x,o-r,o-w,o-x ${SSH_AUTH_SOCK} else echo "Key Agent running" fi echo "Sourcing agent-info file [${AGENT_INFO_FILE}]..." . ${SECURITY_DIR}/${AGENT_INFO_FILE} echo "Adding key..." ssh-add echo "\nLoaded keys:\n" ssh-add -l echo "\n*** Lastly, run the following command:" echo ". ${SECURITY_DIR}/${AGENT_INFO_FILE}" } #******************************************************* # unload key and stop agent #******************************************************* unload_keys () { echo "\nChecking for existance of running ssh-agent..." if [ -f ${SECURITY_DIR}/${AGENT_INFO_FILE} ]; then . ${SECURITY_DIR}/${AGENT_INFO_FILE} ps -p ${SSH_AGENT_PID} if [ $? -eq 0 ]; then echo "Your agent appears to be running." echo "Removing key entries..." ssh-add -d echo "Stopping key agent..." kill -HUP ${SSH_AGENT_PID} else echo "Your agent doesn't appear to be running." fi rm ${SECURITY_DIR}/${AGENT_INFO_FILE} else echo "Unable to find agent info files [${AGENT_INFO_FILE}]" exit 0 fi } ###-------------------------------------------------------------------------### # main ###-------------------------------------------------------------------------### ARG=$1 case "${ARG}" in load) load_keys ;; unload) unload_keys ;; *) echo "\nUsage: $0 {load|unload}" exit 2 ;; esac ###-------------------------------------------------------------------------### # end ###-------------------------------------------------------------------------### exit 0 ================================================================================ Add to .profile; ---------------- SSH_ENV_FILE="./security/myuser-agent-info" if [ -f $SSH_ENV_FILE ]; then echo "Accessing information for ssh-key-agent..." . $SSH_ENV_FILE ssh-add -l else echo "SSH key agent not running. Loading now..." ./control_ssh_key_agent.ksh load . $SSH_ENV_FILE ssh-add -l fi