Advertisement
Guest User

Untitled

a guest
Dec 7th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. DEBUG=false
  4. OPTIND=1
  5. PASSPHRASE=""
  6.  
  7. show_help() {
  8. cat << EOF
  9. Usage: ${0##*/} [-hp] [-f OUTPUTFILE] [-r REMOTE_HOST] [-c COMMENT]
  10. Generate SSH key and copy it to remote if needed.
  11.  
  12. -h display this help
  13. -r REMOTE_HOST send file to remote host
  14. -f OUTPUTFILE output filename
  15. -c COMMENT ssh key comment
  16. -p optional ssh passphrase
  17.  
  18. EOF
  19. }
  20.  
  21. while getopts hpr:f:c: opt; do
  22. case $opt in
  23. h) show_help
  24. exit 0
  25. ;;
  26. r) REMOTE_HOST=$OPTARG
  27. ;;
  28. f) OUTPUTFILE=$OPTARG
  29. ;;
  30. c) COMMENT=$OPTARG
  31. ;;
  32. p) printf "Enter passphrase [none]: "
  33. read -r PASSPHRASE
  34. ;;
  35. *) show_help >&2
  36. exit 1
  37. ;;
  38. esac
  39. done
  40.  
  41. if [ $OPTIND -eq 1 ]; then
  42. show_help
  43. exit 0
  44. fi
  45. shift "$((OPTIND-1))"
  46.  
  47. if [ -f "$OUTPUTFILE" ]
  48. then
  49. echo "File $OUTPUTFILE does exist"
  50. exit 0
  51. fi
  52.  
  53. if [ -z ${COMMENT} ];
  54. then
  55. echo Running: ssh-keygen -q -t rsa -b 4096 -f ${OUTPUTFILE} -N \"$PASSPHRASE\"
  56. if ! $DEBUG ; then ssh-keygen -q -t rsa -b 4096 -C "${COMMENT}" -f ${OUTPUTFILE} -N \"$PASSPHRASE\" ; fi
  57. else
  58. echo Running: ssh-keygen -q -t rsa -b 4096 -C "${COMMENT}" -f ${OUTPUTFILE} -N \"$PASSPHRASE\"
  59. if ! $DEBUG ; then ssh-keygen -q -t rsa -b 4096 -C "${COMMENT}" -f ${OUTPUTFILE} -N \"$PASSPHRASE\" ; fi
  60. fi
  61.  
  62. echo Running: ssh-agent
  63. if ! $DEBUG ; then eval "$(ssh-agent -s)" ; fi
  64.  
  65. echo Running: ssh-add ${OUTPUTFILE}
  66. if ! $DEBUG ; then ssh-add $OUTPUTFILE ; fi
  67.  
  68. if [ ! -z ${REMOTE_HOST} ];
  69. then
  70. echo Running: ssh-copy-id -i ${OUTPUTFILE} ${REMOTE_HOST}
  71. if ! $DEBUG ; then ssh-copy-id -i $OUTPUT_FILE $REMOTE_HOST ; fi
  72. fi
  73.  
  74. # END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement