BASH - Login options
Reuse SSH-AGENT
Share the same ssh-agent across multiple login sessions. With added checks for NFS shared home directory issues
start_agent() { killall ssh-agent 2> /dev/null ssh-agent | sed 's/ Agent pid//' > $SSH_ENV . $SSH_ENV > $SSH_PID_FILE ssh-add ~/.ssh/<private_key> 2> /dev/null } mkdir -p "$HOME/.ssh/agent" # keeps agents more secure than in /tmp SSH_TMOUT=2678400 # 31 days SSH_ENV="$HOME/.ssh/agent/env.$(hostname)" SSH_PID_FILE="$HOME/.ssh/agent/pid.$(hostname)" if [[ -e $SSH_PID_FILE ]]; then SSH_PID=$(< $SSH_PID_FILE) PROCESS=$(ps -p $SSH_PID -o comm=) if [[ $PROCESS == 'ssh-agent' ]]; then . $SSH_ENV > $SSH_PID_FILE else start_agent fi else start_agent fi
History per user on shared sudo accounts
A shared account will have a shared command history. Unsuspecting users could accidentally replay a last command that is not theirs. Using the below, each user will get there own time stamped history First create a directory for history files
mkdir -p ~/.histfiles
Then, adding this to .bashrc for shared accounts gives each user who becomes the account their own history
# User specific aliases and functions # mkdir -p ~/.histfiles HISTFILE=~/.histfiles/$(who am i | cut -d" " -f1 ) echo "#$(date):$(tty)" >> $HISTFILE