Created
June 2, 2021 08:32
-
-
Save MerlinPendragon/a8d65e77fb489b29724b94e7eb285796 to your computer and use it in GitHub Desktop.
create a new user with unique ssh key
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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