On linux, I use ssh-agent. My key at ~/.ssh/id_rsa is encrypted.
When my shell starts, it boots ssh-agent (add "eval `ssh-agent`" to your ~/.bashrc)
Still in the shell boot, it tries to add the ssh key to the keychain (add "ssh-add" to your ~/.bashrc), and it asks for my private key password. Once I enter the password, my key is unlocked for as long at ssh-agent is running (usually until I shut down my computer).
My password is a long, I only need to enter it once a day so it's not really a problem. You can add multiple keys to the ssh-agent (ssh-add mykey.pem). The private key must have these permissions: 0400 (chmod 0400 mykey.pem).