SSH Keys Howto Quicky
Toss this little shell script in your bin dir and you can quickly create and setup ssh keys between your client and server. I called it sshkeys.sh but you can name it what you want.
#!/bin/bash
KEY_PRIVATE="$HOME/.ssh/id_dsa"
KEY_PUBLIC="${KEY_PRIVATE}.pub"
if [ "$1" == "" ] ; then
echo "Usage: $0 <[user@]server>"
exit
fi
if [ ! -f "${KEY_PRIVATE}" ] ; then
echo Creating the private and public keys.
ssh-keygen -t dsa -f "${KEY_PRIVATE}" -N ''
fi
if [ -f "${KEY_PUBLIC}" ] ; then
cat "${KEY_PUBLIC}" |
ssh "${1}" "mkdir -p ~/.ssh ; cat >> .ssh/authorized_keys2 ; chmod -R go-rwx ~/.ssh"
else
echo Unable to find "${KEY_PUBLIC}"
fi
Run this, enter your pass once, and then you’re free to ssh without entering a password.
Watch for line wraps in your browser, especially the ssh line.
October 15th, 2007 at 3:40 am
Thanks for the nifty script
When setting this up previously I’ve found that I had to reset the permissions on both the .ssh directory (600) and the user’s home directory (755) before I could login without passwords.
October 16th, 2007 at 7:57 am
The home directory shouldn’t matter, but it’s important that on the remote system the public key not be writable by anyone but you.
I’ve updated the script above to add a chmod just to ensure it’s all setup right.
It’s probably overkill since most systems I tested allowed the public key to be read by anyone, just not writable.
October 17th, 2007 at 6:31 pm
[...] anton - SSH Keys Howto Quicky at antonolsen.comHere’s a quick script to help automate SSH key creation. [...]