Skip to content

Instantly share code, notes, and snippets.

@MerlinPendragon
Created June 2, 2021 08:32
Show Gist options
  • Save MerlinPendragon/a8d65e77fb489b29724b94e7eb285796 to your computer and use it in GitHub Desktop.
Save MerlinPendragon/a8d65e77fb489b29724b94e7eb285796 to your computer and use it in GitHub Desktop.
create a new user with unique ssh key
function createSSHUser {
#
touch /root/trash 2> /dev/null
if [ $? -ne 0 ]
then
echo "Must execute as root user . . . "
echo "sudo ./createNewSSHUser.sh"
exit 0;
fi
export A_NEW_USER=$1
export NEW_USER_PWD=aptx4869
export ADMIN=ywq
export ADMIN_DIR=/home/${ADMIN}
#
echo New User is $A_NEW_USER identified by $NEW_USER_PWD
#
echo "Get ${A_NEW_USER} home directory .. . . . . . . . "
export A_NEW_USER_HOME=$( grep "${A_NEW_USER}" /etc/passwd | awk -F: '{print $6}' )
echo "New user's home directory is ${A_NEW_USER_HOME}"
#
if [ "XX${A_NEW_USER_HOME}" == "XX" ]; then
#
echo "Create a full privileges admin user ..........................."
export PASS_HASH=$(perl -e 'print crypt($ARGV[0], "password")' "$NEW_USER_PWD")
echo ${PASS_HASH}
# addgroup sudo
useradd -Ds /bin/bash
useradd -m -p ${PASS_HASH} ${A_NEW_USER}
#passwd -e ${A_NEW_USER}
#
A_NEW_USER_HOME=/home/${A_NEW_USER}
else
echo "The ${A_NEW_USER} user account is already configured in ${A_NEW_USER_HOME} . . . "
fi
#
echo "................................................................"
echo "Prepare for SSH tasks"
echo "................................................................"
#
apt-get install -y openssh-server
#
export A_NEW_USER_SSH_DIR=${A_NEW_USER_HOME}/.ssh
mkdir -p ${A_NEW_USER_SSH_DIR}
chmod 700 ${A_NEW_USER_SSH_DIR}
#
pushd ${A_NEW_USER_SSH_DIR}
#
#
echo "................................................................"
echo "Generate SSH key pair for ${A_NEW_USER}"
echo "................................................................"
rm -f id_rsa*
ssh-keygen -f id_rsa -t rsa -N '' -C "${A_NEW_USER}@${A_NEW_USER}.me"
#
#
popd
echo "................................................................"
echo "Authorizing public key ......................................"
echo "................................................................"
cat ${A_NEW_USER_SSH_DIR}/id_rsa.pub > ${A_NEW_USER_SSH_DIR}/authorized_keys
#
echo "................................................................"
echo "Assign correct ownership ......................................"
echo "................................................................"
chown -R ${A_NEW_USER}:${A_NEW_USER} /home/${A_NEW_USER}
#
#
echo "................................................................"
echo "Here is ${A_NEW_USER}'s private key"
echo "................................................................"
echo " "
cat ${A_NEW_USER_SSH_DIR}/id_rsa
echo "................................................................"
echo "Backing up in ADMIN's dir"
echo "................................................................"
echo " "
cp ${A_NEW_USER_SSH_DIR}/id_rsa ${ADMIN_DIR}/user_management/${A_NEW_USER}.id
chown -R ${ADMIN}:${ADMIN} ${ADMIN_DIR}/user_management/${A_NEW_USER}.id
echo " "
echo " "
echo " "
echo Done creating new user ${A_NEW_USER}
echo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
echo " "
echo Please change password for new user ${A_NEW_USER}
echo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
passwd ${A_NEW_USER}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment