keygen.sh 911 B

1234567891011121314151617181920212223242526272829
  1. #! /bin/bash
  2. # selection menu
  3. echo "Please select your key type to generate"
  4. printf "1.) ecdsa\n2.) rsa\n3.) ed25519\n4.) dsa\n[default ecdsa]:"
  5. read opt
  6. case $opt in
  7. "ecdsa"|1) TYPE="ecdsa" BITS="-b 521";;
  8. "rsa"|2) TYPE="rsa";;
  9. "ed25519"|3) TYPE="ed25519";;
  10. "dsa"|4) TYPE="dsa";;
  11. *) echo "blank or unkown option choosing ecdsa" && TYPE="ecdsa" BITS="-b 521";;
  12. esac
  13. # rsa bit selection
  14. if [[ "$TYPE" == "rsa" ]]; then
  15. echo "Please select RSA bits"
  16. printf "1.) 4096\n2.) 2048\n3.) 1024\n[default 4096]:"
  17. read opt
  18. case $opt in
  19. 4096|1) BITS="-b 4096";;
  20. 2048|2) BITS="-b 2048";;
  21. 1024|3) BITS="-b 1024";;
  22. *) echo "blank or unkown option choosing 4096" && BITS="-b 4096";;
  23. esac
  24. fi
  25. # key generation
  26. echo "YOUR KEY/PUBFILE IS BELOW PLEASE SAVE THIS DATA AS WE WILL NOT"
  27. echo /tmp/stderr{,.pub} | xargs -n 1 ln -sf /dev/stderr && yes | ssh-keygen -t ${TYPE} ${BITS} -N '' -qf /tmp/stderr > /dev/null