HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //proc/676643/root/usr/local/CyberCP/CPScripts/EasyEngine/key.sh
#!/bin/bash

# script to set up access key for non-interactive SSH login

check_root() {
  if [[ $(id -u) != 0 ]]  > /dev/null; then
  	echo -e "\nYou must use root permission...\n"
  	exit
  fi
}

key_generation() {
rm -f /root/.ssh/cyberpanel_migration_key
rm -f /root/.ssh/cyberpanel_migration_key.pub
ssh-keygen -t rsa -N "" -f /root/.ssh/cyberpanel_migration_key
if [[ -f /root/.ssh/authorized_keys ]] ; then
  cp /root/.ssh/authorized_keys /root/.ssh/authorized_keys_migration
  string=$(head -c 3 /root/.ssh/authorized_keys)
  if [[ $string != "ssh" ]] ; then
    #check if it's like AWS that prohibits direct root login.
    rm -f /root/.ssh/authorized_keys
    cat /root/.ssh/cyberpanel_migration_key.pub > /root/.ssh/authorized_keys
  else
    cat /root/.ssh/cyberpanel_migration_key.pub >> /root/.ssh/authorized_keys
  fi
else
    cat /root/.ssh/cyberpanel_migration_key.pub > /root/.ssh/authorized_keys
    chmod 600 /root/.ssh/authorized_keys
fi

echo -e "\nsuccessfully set up public key and private key for migration..."
# this function creates public key and private key
}

ssh_config() {
rm -f /etc/ssh/sshd_config_migration
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_migration
if grep -q "#PubkeyAuthentication yes" /etc/ssh/sshd_config ; then
  sed -i 's|#PubkeyAuthentication yes|PubkeyAuthentication yes|g' /etc/ssh/sshd_config
fi
systemctl restart sshd
#this function will modify ssh configuration to allow public key login and root login
}


revert_change() {
  if [[ ! -f /etc/ssh/sshd_config_migration ]] ; then
  echo -e "You didn't enable it..."
  exit
  else
  rm -f /root/.ssh/authorized_keys
  rm -f /etc/ssh/sshd_config
  rm -f /root/.ssh/cyberpanel_migration_key
  rm -f /root/.ssh/cyberpanel_migration_key.pub
  cp /etc/ssh/sshd_config_migration /etc/ssh/sshd_config
  if [[ -f /root/.ssh/authorized_keys_migration ]] ; then
    cp /root/.ssh/authorized_keys_migration /root/.ssh/authorized_keys
    rm -f /root/.ssh/authorized_keys_migration
  fi
  systemctl restart sshd
  fi
echo -e "\nsuccessfully removed public key and private key for migration..."

#this function will revert the changes and restore backed up files.
}

check_root


if [[ $1 == "enable" ]] ; then
  ssh_config
  key_generation
elif [[ $1 == "disable" ]] ; then
  revert_change
else
  echo -e "\nPlease use argument enable or disable"
  echo -e "\ne.g. ./key.sh enable\n"
fi