File: //bigscoots/wpo/extras/sshuser.sh
#!/bin/bash
mkdir -p /home/nginx/.ssh
touch /home/nginx/.ssh/authorized_keys
chmod 700 /home/nginx/.ssh
chmod 600 /home/nginx/.ssh/authorized_keys
chown -R nginx: /home/nginx/.ssh
sed -i 's=/home/nginx:/sbin/nologin=/home/nginx:/bin/bash=g' /etc/passwd
chmod 777 /bin/wp /usr/bin/wp
case $1 in
add)
SSHKEYNAME="$2"
SSHKEY="$3"
if grep -q "BSBSBSBSBSBS${SSHKEYNAME}BSBSBSBSBSBS" /home/nginx/.ssh/authorized_keys
then
echo "{\"status\":\"fail\",\"msg\":\"That key name already exists, please choose a different key name.\"}"
exit 1
else
echo "${SSHKEY} BSBSBSBSBSBS${SSHKEYNAME}BSBSBSBSBSBS" >> /home/nginx/.ssh/authorized_keys && echo "{\"status\":\"success\",\"msg\":\"The SSH key has been added.\"}"
fi
;;
remove)
SSHKEYNAME="$2"
if grep -q "BSBSBSBSBSBS${SSHKEYNAME}BSBSBSBSBSBS" /home/nginx/.ssh/authorized_keys
then
sed -i "/BSBSBSBSBSBS${SSHKEYNAME}BSBSBSBSBSBS/d" /home/nginx/.ssh/authorized_keys && echo "{\"status\":\"success\",\"msg\":\"The SSH key has been removed.\"}"
else
echo "{\"status\":\"fail\",\"msg\":\"That key name does not exist.\"}"
exit 1
fi
;;
list)
if grep -q "BSBSBSBSBSBS.*BSBSBSBSBSBS" /home/nginx/.ssh/authorized_keys
then
grep "BSBSBSBSBSBS.*BSBSBSBSBSBS" /home/nginx/.ssh/authorized_keys | sed 's/BSBSBSBSBSBS//g' | STATUS=success DATATYPE=sshkey /bigscoots/includes/mkjson.sh
else
echo "{\"status\":\"success\",\"data\":\"null\"}"
fi
;;
addip)
IP="$2"
IPNAME="$3"
if grep -q "tcp|in|d=2222|s=$IP" /etc/csf/csf.allow
then
echo "{\"status\":\"success\",\"msg\":\"IP has already been whitelisted.\"}"
exit
else
echo "tcp|in|d=2222|s=$IP # Added from WPO ${IPNAME} #" >> /etc/csf/csf.allow
csf -ra >/dev/null 2>&1
echo "{\"status\":\"success\",\"data\":\"null\"}"
fi
;;
remip)
IP="$2"
if grep -q "tcp|in|d=2222|s=$IP" /etc/csf/csf.allow
then
sed -i "\_tcp|in|d=2222|s=${IP}_d" /etc/csf/csf.allow
csf -ra >/dev/null 2>&1
echo "{\"status\":\"success\",\"data\":\"null\"}"
else
echo "{\"status\":\"fail\",\"data\":\"IP does not exist.\"}"
fi
;;
listip)
if grep -q "# Added from WPO" /etc/csf/csf.allow
then
grep "# Added from WPO" /etc/csf/csf.allow | sed 's/# Added from WPO//g' | awk '{print $1, $2}' | STATUS=success DATATYPE=sship /bigscoots/includes/mkjson.sh
else
echo "{\"status\":\"success\",\"data\":\"null\"}"
fi
;;
manual)
echo "SSH Host: $(ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p')"
echo "SSH Port: 2222"
echo "SSH Username: nginx"
echo "SSH Command: ssh -p 2222 nginx@$(ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p')"
echo
echo
echo "Now add the customers SSH key to /home/nginx/.ssh/authorized_keys"
echo
echo
;;
esac