Skip to content

Instantly share code, notes, and snippets.

@nfreader
Forked from jfro/sshput-function.sh
Created October 31, 2011 18:55
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nfreader/1328469 to your computer and use it in GitHub Desktop.
Save nfreader/1328469 to your computer and use it in GitHub Desktop.
modified someone's sshput command for uploading ssh public keys
sshput () {
RSAKEY="${HOME}/.ssh/id_rsa.pub"
DSAKEY="${HOME}/.ssh/id_dsa.pub"
if [ $# -eq 2 ]; then
KEY=$1
if [ ! -r $KEY ]
then
echo "'$KEY' does not exist or is not readable"
return 1
fi
SERVER=$2
else
if [ -r ${RSAKEY} ]; then
KEY=$RSAKEY
elif [ -r ${DSAKEY} ]; then
KEY=$RSAKEY
else
echo "No RSA or DSA key found"
return 1
fi
SERVER=$1
fi
if [ $# -lt 1 -o "$1" = "-h" ]; then
echo Syntax:
echo "$0 [publickey] [user@]<remotehost>"
return 1
fi
# testing above
echo "Copying $KEY to $SERVER"
cat $KEY | \
ssh $SERVER 'mkdir -p -m 0700 ${HOME}/.ssh && \
cat >> $HOME/.ssh/authorized_keys && \
chmod 0600 $HOME/.ssh/authorized_keys'
if [ $? -eq 0 ]; then
echo "Public key installed on $SERVER"
return 0
else
echo "Sorry, an error occurred!"
return 1
fi
}
#!/bin/sh
# sshput [publickey] [user@]<remotehost>
#
# modified by Jeremy Knope <jerome@buttered-cat.com> for optional key specification & automatic rsa/dsa attempts
#
# Puts your local RSA/DSA public key into the .ssh/authorized_keys
# on a remote machine. This should allow you to login without
# needing a password.
#
# This software comes with no guarantees whatsoever, and is yours to
# do with as you will. I'd be grateful if you feed any generally-useful
# improvements back to me, for the benefit of others.
#
# Quentin Stafford-Fraser http://www.qandr.org/quentin
RSAKEY="${HOME}/.ssh/id_rsa.pub"
DSAKEY="${HOME}/.ssh/id_dsa.pub"
if [ $# -eq 2 ]
then
KEY=$1
if [ ! -r $KEY ]
then
echo "'$KEY' does not exist or is not readable"
exit 1
fi
SERVER=$2
else
if [ -r ${RSAKEY} ]
then
KEY=$RSAKEY
elif [ -r ${DSAKEY} ]
then
KEY=$RSAKEY
else
echo "No RSA or DSA key found"
exit 1
fi
SERVER=$1
fi
if [ $# -lt 1 -o "$1" = "-h" ]
then
echo Syntax:
echo "$0 [publickey] [user@]<remotehost>"
exit 1
fi
# testing above
echo "Copying $KEY to $SERVER"
cat $KEY | \
ssh $SERVER 'mkdir -p -m 0700 ${HOME}/.ssh && \
cat >> $HOME/.ssh/authorized_keys && \
chmod 0600 $HOME/.ssh/authorized_keys'
if [ $? -eq 0 ]
then
echo "Public key installed on $SERVER"
exit 0
else
echo "Sorry, an error occurred!"
exit 1
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment