add solutions
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
|
||||
#==============================================================================
|
||||
# generates an SSH key under default user location ~/.ssh/
|
||||
# and add the public key to the clipboard
|
||||
#
|
||||
# the email could be given when calling the script or be prompted later
|
||||
|
||||
email=''
|
||||
filename=$(hostname)
|
||||
user=$(whoami)
|
||||
|
||||
usage='Usage: generateSSH.bash [-e email]'
|
||||
|
||||
# handle options
|
||||
while getopts 'e:v' flag; do
|
||||
case "${flag}" in
|
||||
e) email=${OPTARG};;
|
||||
esac
|
||||
done
|
||||
|
||||
# if the mail is not given, prompt it
|
||||
if [ -z "$email" ]
|
||||
then
|
||||
echo -n "Please enter your mail: "
|
||||
read email
|
||||
fi
|
||||
# generates the key-couple
|
||||
# cat /dev/zero create an empty file to be filled by the key
|
||||
# then ssh-keygen is called with:
|
||||
# -q to call it silently (no verbose)
|
||||
# -N with empty string to set no-password
|
||||
# -t to specify the type of key
|
||||
# -C to set the user mail
|
||||
cat /dev/zero | ssh-keygen -q -N "" -t ed25519 -C "${user}@${filename}" -f ~/.ssh/$filename
|
||||
|
||||
# then copy the public key into the clipboard
|
||||
clip < ~/.ssh/${filename}.pub
|
||||
|
||||
# print output for user
|
||||
echo -e "\nThe keyfiles are generated under ~/.ssh/"
|
||||
echo -e "\nThe public key is in your clipboard, ready to be added to your Github account."
|
||||
Reference in New Issue
Block a user