Shell Script Install Public Key

This script is to save my time when installing new servers. Sure, I could just write out the last line in the script but its more effort than this and there's too likely to be a mistake. This script will prompt for a host, username (default is your current username), and then will look in the standard spot (~/.ssh/) for id_dsa.pub or id_rsa.pub. You can also specify a filename.

Basic Syntax:

./install_public_key.sh

"Advanced" Syntax:

./install_public_key.sh /path/to/my/key.pub

The script: (download)

#!/bin/bash
if [ "`echo -n`" = "-n" ]; then
  n=""; c="\c"
else
  n="-n"; c=""
fi

echo $n "Host: $c"; read host
if [ "$host" = "" ]; then
  echo "Exiting: Host not specified"
  exit 1
fi
echo $n "Username ("`whoami`"):$c"; read user
if [ "$user" = "" ]; then
  user=`whoami`
fi
DSA_FILE=~/.ssh/id_dsa.pub
RSA_FILE=~/.ssh/id_rsa.pub
if [ -f "$1" ]; then
  KEYFILE=$1
elif [ -f $DSA_FILE ]; then
  KEYFILE=$DSA_FILE
elif [ -f $RSA_FILE ]; then
  KEYFILE=$RSA_FILE
else
  echo "Exiting: Public key not found"
  exit 1
fi
PUBKEY=`cat $KEYFILE`
ssh $user@$host "mkdir -p ~/.ssh;echo \"$PUBKEY\" >> ~/.ssh/authorized_keys;chmod go-w ~/.ssh;chmod go-w ~/.ssh/authorized_keys"

Comments

Where Can I use this Script? I'm not likely familiar with Shell Script.
Ruby,
van">http://www.van-insurance-cheap.co.uk/">van insurance quote