Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- DEBUG=false
- OPTIND=1
- PASSPHRASE=""
- show_help() {
- cat << EOF
- Usage: ${0##*/} [-hp] [-f OUTPUTFILE] [-r REMOTE_HOST] [-c COMMENT]
- Generate SSH key and copy it to remote if needed.
- -h display this help
- -r REMOTE_HOST send file to remote host
- -f OUTPUTFILE output filename
- -c COMMENT ssh key comment
- -p optional ssh passphrase
- EOF
- }
- while getopts hpr:f:c: opt; do
- case $opt in
- h) show_help
- exit 0
- ;;
- r) REMOTE_HOST=$OPTARG
- ;;
- f) OUTPUTFILE=$OPTARG
- ;;
- c) COMMENT=$OPTARG
- ;;
- p) printf "Enter passphrase [none]: "
- read -r PASSPHRASE
- ;;
- *) show_help >&2
- exit 1
- ;;
- esac
- done
- if [ $OPTIND -eq 1 ]; then
- show_help
- exit 0
- fi
- shift "$((OPTIND-1))"
- if [ -f "$OUTPUTFILE" ]
- then
- echo "File $OUTPUTFILE does exist"
- exit 0
- fi
- if [ -z ${COMMENT} ];
- then
- echo Running: ssh-keygen -q -t rsa -b 4096 -f ${OUTPUTFILE} -N \"$PASSPHRASE\"
- if ! $DEBUG ; then ssh-keygen -q -t rsa -b 4096 -C "${COMMENT}" -f ${OUTPUTFILE} -N \"$PASSPHRASE\" ; fi
- else
- echo Running: ssh-keygen -q -t rsa -b 4096 -C "${COMMENT}" -f ${OUTPUTFILE} -N \"$PASSPHRASE\"
- if ! $DEBUG ; then ssh-keygen -q -t rsa -b 4096 -C "${COMMENT}" -f ${OUTPUTFILE} -N \"$PASSPHRASE\" ; fi
- fi
- echo Running: ssh-agent
- if ! $DEBUG ; then eval "$(ssh-agent -s)" ; fi
- echo Running: ssh-add ${OUTPUTFILE}
- if ! $DEBUG ; then ssh-add $OUTPUTFILE ; fi
- if [ ! -z ${REMOTE_HOST} ];
- then
- echo Running: ssh-copy-id -i ${OUTPUTFILE} ${REMOTE_HOST}
- if ! $DEBUG ; then ssh-copy-id -i $OUTPUT_FILE $REMOTE_HOST ; fi
- fi
- # END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement