The version of ssh
that ships with Mac OS X is quite old. If you want a more recent version to use, for instance, ECDSA or ED25519 keypairs you can install a more recent version of ssh
using MacPorts with sudo port install openssh +gsskex
.
Unfortunately, OS X won’t remember your fancy ECDSA or ED25519 key passwords in the KeyChain. This is because the old ssh-agent
is running in the background. This is how to run MacPort’s ssh-agent
:
- Don’t forget to install
openssh
with the+gsskex
variant. Otherwisessh-agent
won’t even try to talk to the KeyChain. - Run
launchctl unload -w /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist
to disable Mac’s oldssh-agent
. Note: run this under your user account — not as root. - Copy
/System/Library/LaunchAgents/org.openbsd.ssh-agent.plist
to~/Library/LaunchAgents/org.macports.ssh-agent.plist
and open the copy in an editor. In the copy, replace/usr/bin/ssh-agent
with/opt/local/bin/ssh-agent
andorg.openbsd.ssh-agent
withorg.macports.ssh-agent
. - Run
launchctl load -S Aqua -w ~/Library/LaunchAgents/org.macports.ssh-agent.plist
to enable thessh-agent
from MacPorts. Again, run this as under your user account — not as root. - Logout and login again.
That should do it. These steps are an updated version of this guide.
The latest version of the mac ports install takes care of the loading unloading for you if you just do “sudo port load openssh” after installing.