Windows 7 Ultimate 64-bit, Cygwin
I’ve avoided doing this until now coz I sometimes make mistakes and the SSH password is an additional layer of anti-idiot. Anyway…
Whenever you SSH to a new machine (or SCP a file) on Cygwin, you’re probably used to entering your password for the connection each time. Wouldn’t it be cool if you could enter the password once for each session? Sure it would!
We need to edit our .bash_profile file in the user’s root directory and add the following definition:
File: .bash_profile
1 2 3 4 5 6 | SSHAGENT=/usr/bin/ssh-agent SSHAGENTARGS="-s" if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then eval `$SSHAGENT $SSHAGENTARGS` trap "kill $SSH_AGENT_PID" 0 fi |
Ok, if we save that and reload Cygwin… nothing happens. However, we could now add our key to the session using ssh-add ~/.ssh/id_rsa. But wait, this is supposed to be automated, right?
In order to have ssh-add run automatically for each session, we should add another snippet to our .bash_profile
File: .bash_profile
1 2 3 4 5 6 7 8 9 10 11 | SSHAGENT=/usr/bin/ssh-agent SSHAGENTARGS="-s" if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then eval `$SSHAGENT $SSHAGENTARGS` trap "kill $SSH_AGENT_PID" 0 fi ssh-add -l >/dev/null 2>&1 if [ $? -eq 1 ]; then ssh-add fi |
Save that and reload Cygwin. If all is well, you should now be asked to enter your password for your private key because ssh-add runs for the first time. Do that and your subsequent connections for this session will have the password for your key and you won’t be bothered for it each time.
Use with caution.