diff --git a/meta-phosphor/classes/phosphor-deploy-ssh-keys.bbclass b/meta-phosphor/classes/phosphor-deploy-ssh-keys.bbclass
index a85d2ac..277a55c 100644
--- a/meta-phosphor/classes/phosphor-deploy-ssh-keys.bbclass
+++ b/meta-phosphor/classes/phosphor-deploy-ssh-keys.bbclass
@@ -1,13 +1,16 @@
 ####
 # Copyright 2020 Hewlett Packard Enterprise Development LP.
-#
+# Copyright 2021 Intel Corporation
 #
 # Add a basic class to add a privileged user from an ssh
 # standpoint and a public key passed as an input parameter
 # from the local.conf file
 # Example:
 # INHERIT += "phosphor-deploy-ssh-keys"
-# SSH_KEYS = "vejmarie:/home/openbmc/openbmc/meta-hpe/keys/test.pub;"
+#
+# SSH_KEYS = "vejmarie:/home/openbmc/openbmc/meta-hpe/keys/test.pub"
+# or
+# SSH_KEYS = "vejmarie:/home/openbmc/openbmc/meta-hpe/keys/test.pub;root:/path/to/id_rsa.pub"
 ####
 
 inherit useradd_base
@@ -15,48 +18,46 @@
 IMAGE_PREPROCESS_COMMAND += "deploy_local_user;"
 
 deploy_local_user () {
-        if [ "${SSH_KEYS}" != "" ]; then
-		group_settings="${SSH_KEYS}"
-		current_setting=`echo $group_settings | cut -d ';' -f1`
-		remaining=`echo $group_settings | cut -d ';' -f2-`
-		while test "x$current_setting" != "x"; do
-
-			username=`echo ${SSH_KEYS} | awk -F":" '{ print $1}'`
-			key_path=`echo ${SSH_KEYS} | awk -F":" '{ print $2}'`
-
-			if [ ! -d ${IMAGE_ROOTFS}/home/${username} ]; then
-				perform_useradd "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} -p '' ${username}"
-			fi
-
-			if [ ! -d ${IMAGE_ROOTFS}/home/${username}.ssh/ ]; then
-				install -d ${IMAGE_ROOTFS}/home/${username}/.ssh/
-			fi
-
-			if [ ! -f ${IMAGE_ROOTFS}/home/${username}/.ssh/authorized_keys ]; then
-				install -m 0600 ${key_path} ${IMAGE_ROOTFS}/home/${username}/.ssh/authorized_keys
-			else
-				cat ${key_path} >> ${IMAGE_ROOTFS}/home/${username}/.ssh/authorized_keys
-			fi
-
-			uid=`cat ${IMAGE_ROOTFS}/etc/passwd | grep "${username}:" | awk -F ":" '{print $3}'`
-			guid=`cat ${IMAGE_ROOTFS}/etc/passwd | grep "${username}:" | awk -F ":" '{print $4}'`
-
-			chown -R ${uid}:${guid} ${IMAGE_ROOTFS}/home/${username}/.ssh
-			chmod 600  ${IMAGE_ROOTFS}/home/${username}/.ssh/authorized_keys
-			chmod 700 ${IMAGE_ROOTFS}/home/${username}/.ssh
-
-			is_group=`grep "priv-admin" ${IMAGE_ROOTFS}/etc/group || true`
-
-			if [ -z "${is_group}" ]; then
-				perform_groupadd "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} priv-admin"
-			fi
-
-			perform_usermod "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} -a -G priv-admin ${username}"
-
-			current_setting=`echo $remaining | cut -d ";" -f1`
-			remaining=`echo $remaining | cut -d ';' -f2-`
-		done
-	else
+	if [ "${SSH_KEYS}" == "" ]; then
 		bbwarn "Trying to deploy SSH keys but input variable is empty (SSH_KEYS)"
+		return
 	fi
+
+	ssh_keys="${SSH_KEYS}"
+	while [ "${ssh_keys}" != "" ]; do
+		current_key=`echo "$ssh_keys" | cut -d ';' -f1`
+		ssh_keys=`echo "$ssh_keys" | cut -s -d ';' -f2-`
+
+		username=`echo "$current_key" | awk -F":" '{ print $1}'`
+		key_path=`echo "$current_key" | awk -F":" '{ print $2}'`
+
+		if [ ! -d ${IMAGE_ROOTFS}/home/${username} ]; then
+			perform_useradd "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} -p '' ${username}"
+		fi
+
+		if [ ! -d ${IMAGE_ROOTFS}/home/${username}.ssh/ ]; then
+			install -d ${IMAGE_ROOTFS}/home/${username}/.ssh/
+		fi
+
+		if [ ! -f ${IMAGE_ROOTFS}/home/${username}/.ssh/authorized_keys ]; then
+			install -m 0600 ${key_path} ${IMAGE_ROOTFS}/home/${username}/.ssh/authorized_keys
+		else
+			cat ${key_path} >> ${IMAGE_ROOTFS}/home/${username}/.ssh/authorized_keys
+		fi
+
+		uid=`cat ${IMAGE_ROOTFS}/etc/passwd | grep "${username}:" | awk -F ":" '{print $3}'`
+		guid=`cat ${IMAGE_ROOTFS}/etc/passwd | grep "${username}:" | awk -F ":" '{print $4}'`
+
+		chown -R ${uid}:${guid} ${IMAGE_ROOTFS}/home/${username}/.ssh
+		chmod 600  ${IMAGE_ROOTFS}/home/${username}/.ssh/authorized_keys
+		chmod 700 ${IMAGE_ROOTFS}/home/${username}/.ssh
+
+		is_group=`grep "priv-admin" ${IMAGE_ROOTFS}/etc/group || true`
+
+		if [ -z "${is_group}" ]; then
+			perform_groupadd "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} priv-admin"
+		fi
+
+		perform_usermod "${IMAGE_ROOTFS}" "-R ${IMAGE_ROOTFS} -a -G priv-admin ${username}"
+	done
 }
