Automatically Start ssh-agent on Mac OS X

Mac OS X does not automatically start ssh-agent for you when it creates a new login session.  I suppose this makes sense for much of the Mac target audience that will never use ssh, but it is annoying for those of us who use it regularly.

I added the following to my .profile automatically start ssh-agent when I open my first terminal window:

if [ "x" == "x`ps -x -u ${USER} | egrep [s]sh-agent`" ] ; then
	ssh-agent | sed -e "/^echo/d" > ${HOME}/bin/agent-env
fi
source ${HOME}/bin/agent-env

Terminal.app starts a new login shell, which calls .profile every time you create a new window.  The ‘if’ statement check so see if ssh-agent is already running, if not, it starts a new ssh-agent and writes the output to ${HOME}/bin/agent-env.

This file sets the environment variables ssh needs to find the ssh-agent.  The ‘source’ command after the if statement runs agent-env in the current process, which allows the environment variables to take effect in the current process.

You will still have to run ssh-add to add your keys, but at least you do not have to start the ssh-agent.

Installing MacPorts on Lion with Xcode 4 from the App Store

Installing MacPorts on Lion requires first installing Xcode 4.1.  Apple makes Xcode available as a download to developers who have subscribed as Mac developers for $99 per year, or for free through the Mac App store.  Unfortunately, the Xcode installer that the App Store downloads does not install the “Unix Development” or “System Tools” components required by MacPorts.

After much fiddling, I found a way to install Xcode 4.1 from the Mac App Store and get the “Unix Development” and “System Tools” components.  Here is what I did:

  1. Install Xcode 4 through the App Store
  2. Go to the /Applications folder
  3. The “Install Xcode” application is the installer that the App Store used to install Xcode (without the components you want).  Right click on “Install Xcode” and select “Show Package Contents”.
  4. Open Contents/Resources and double click on Xcode.mpkg

Double clicking the mpkg installer will give the option to install Xcode in a custom location and to customize which components are installed, including “Unix Development” and “System Tools”.

The install process took my laptop about 30 minutes to complete.  It might be possible to cancel the initial install after “Install Xcode” has been fully downloaded, then proceed to the mpkg install, but I have not tested that.