title: Set SSH Identities In Bashrc
body: <p>I have a .bashrc file to start my ssh agent (<a href="https://confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Git" rel="nofollow">taken from here</a>).</p>
  
  <p>Whenever I start my machine I keep having to add my identities to it (using <code>ssh-add ~/.ssh my_private key</code>).<br />
  Not knowing bash scripting much, what (and where) do I adjust this script to add in my identities?</p>
  
  <pre><code>SSH_ENV="$HOME/.ssh/environment"
  
  # start the ssh-agent
  function start_agent {
      echo "Initializing new SSH agent..."
      # spawn ssh-agent
      ssh-agent | sed 's/^echo/#echo/' &gt; "$SSH_ENV"
      echo succeeded
      chmod 600 "$SSH_ENV"
      . "$SSH_ENV" &gt; /dev/null
      ssh-add
  }
  
  # test for identities
  function test_identities {
      # test whether standard identities have been added to the agent already
      ssh-add -l | grep "The agent has no identities" &gt; /dev/null
      if [ $? -eq 0 ]; then
          ssh-add
          # $SSH_AUTH_SOCK broken so we start a new proper agent
          if [ $? -eq 2 ];then
              start_agent
          fi
      fi
  }
  
  # check for running ssh-agent with proper $SSH_AGENT_PID
  if [ -n "$SSH_AGENT_PID" ]; then
      ps -ef | grep "$SSH_AGENT_PID" | grep ssh-agent &gt; /dev/null
      if [ $? -eq 0 ]; then
      test_identities
      fi
  # if $SSH_AGENT_PID is not properly set, we might be able to load one from
  # $SSH_ENV
  else
      if [ -f "$SSH_ENV" ]; then
      . "$SSH_ENV" &gt; /dev/null
      fi
      ps -ef | grep "$SSH_AGENT_PID" | grep -v grep | grep ssh-agent &gt; /dev/null
      if [ $? -eq 0 ]; then
          test_identities
      else
          start_agent
      fi
  fi
  </code></pre>