# This script is hosted on https://amogusreal.tech for https://github.com/amogusreal69/ssh. It is also hosted at https://ssh.amogus.works/script.sh. Read more at the repository link.
#!/bin/bash # amogus's SSH key manager # # This script is used as a way to help users as fast as possible by instead of sharing their server's password, they add my SSH key, and I have access to their server. # Idea inspired by Virtfusion, GPT-4o helped with this lol # This is the new version of the script, accessible via: # $ wget -qO- https://ssh.amogus.works/script.sh | bash # # We also have a legacy version of the script, which is no longer maintained, accessible via: # $ wget -qO- https://ssh.amogus.works/old.sh | bash # # Have fun! Made with ❤️ by amogus help() { echo -e "\033[92m● Usage:\e[0m" echo -e " script.sh [add|remove|check|help]" echo "" echo -e "\033[92m● Options:\e[0m" echo -e " \e[33m○ add\e[0m - Installs the SSH key." echo -e " \e[33m○ remove\e[0m - Removes the SSH key." echo -e " \e[33m○ check\e[0m - Checks if the SSH key is installed." echo -e " \e[33m○ help\e[0m - Displays this help message." echo "" echo -e "\033[92m● GitHub Repository:\e[0m" echo -e " \e[33m○ https://github.com/amogusreal69/ssh\e[0m" exit 0 } add() { mkdir -p ~/.ssh chmod 700 ~/.ssh touch ~/.ssh/authorized_keys grep -F -e "amogusreal69420@proton.me" -e "amogus's support key, check next_steps.txt in root directory for more" ~/.ssh/authorized_keys >/dev/null 2>&1 if [ $? -eq 0 ]; then echo -e "\033[93m● Support SSH key is already installed!\e[0m" else echo -e "\e[36m○ Downloading support SSH key...\e[0m" wget https://ssh.amogus.works/keys/ssh_key.pub -O "${TMP_DOWNLOAD_LOCATION}/__tmp___amogus___key" >/dev/null 2>&1 echo -e "\e[36m○ Downloading support SSH key checksum...\e[0m" wget https://ssh.amogus.works/keys/checksum/ssh_key.checksum -O "${TMP_DOWNLOAD_LOCATION}/__tmp___amogus__key___check" >/dev/null 2>&1 echo -e "\e[36m○ Verifying SSH key with SHA1...\e[0m" CHECKSUM=$(awk '{ print $1 }' "${TMP_DOWNLOAD_LOCATION}/__tmp___amogus__key___check") KEYSUM=$(sha1sum "${TMP_DOWNLOAD_LOCATION}/__tmp___amogus___key" | awk '{ print $1 }') if [ "${CHECKSUM}" == "${KEYSUM}" ]; then echo -e "\033[92m● SSH key verification successful!\e[0m" echo -e "\e[36m○ Installing SSH key...\e[0m" SSH_KEY=$(cat "${TMP_DOWNLOAD_LOCATION}/__tmp___amogus___key") echo "${SSH_KEY}" >> ~/.ssh/authorized_keys rm -f "${TMP_DOWNLOAD_LOCATION}/__tmp___amogus___key" rm -f "${TMP_DOWNLOAD_LOCATION}/__tmp___amogus__key___check" echo -e "\033[92m● Support SSH key installed successfully!\e[0m" echo "" next_steps echo "" save_next_steps else echo -e "\e[1;31m● Support SSH key verification failed! SSH Key didn't match checksum!\e[0m" fi fi echo -e "\e[36m○ Setting permissions...\e[0m" chmod 600 ~/.ssh/authorized_keys } remove_ssh_key() { grep -F -e "amogusreal69420@proton.me" -e "amogus's support key, check next_steps.txt in root directory for more" ~/.ssh/authorized_keys >/dev/null 2>&1 if [ $? -ne 0 ]; then echo -e "\e[1;31m● Support SSH key not found!\e[0m" else sed -i '/amogusreal69420@proton.me/d' ~/.ssh/authorized_keys sed -i "/amogus's support key, check next_steps.txt in root directory for more/d" ~/.ssh/authorized_keys echo -e "\033[92m● Support SSH key removed successfully!\e[0m" fi } check_ssh_key() { grep -F -e "amogusreal69420@proton.me" -e "amogus's support key, check next_steps.txt in root directory for more" ~/.ssh/authorized_keys >/dev/null 2>&1 if [ $? -eq 0 ]; then echo -e "\033[92m● Support SSH key IS installed.\e[0m" echo -e "\033[92m○ To remove my support SSH key, run the following command:\e[0m" echo -e " \e[33mwget -qO- https://ssh.amogus.works/script.sh | bash -s -- remove\e[0m" else echo -e "\033[93m● Support SSH key is NOT installed.\e[0m" echo -e "\033[92m○ To add my support SSH key, run the following command:\e[0m" echo -e " \e[33mwget -qO- https://ssh.amogus.works/script.sh | bash -s -- add\e[0m" fi } next_steps() { echo -e "\e[36m=========================================\e[0m" echo -e "\033[92m Next Steps \e[0m" echo -e "\e[36m=========================================\e[0m" echo -e "\033[92m● What you can do next:\e[0m" echo -e " \e[33m○ Share your server's IP Address:\e[0m If you need support and I asked you to run this script, please share your server's IP address, as well as your SSH port." echo -e " \e[1;31m○ Please, do not share your server's password, as I will not use it. If you are still using passwords, I recommend migrating to SSH Keys. It's safer.\e[0m" echo -e " \e[33m○ Remove the SSH key:\e[0m Use \`wget -qO- https://ssh.amogus.works/script.sh | bash -s -- remove\` if you no longer need the key." echo -e " \e[33m○ Check key status:\e[0m Use \`wget -qO- https://ssh.amogus.works/script.sh | bash -s -- check\` to confirm if the key is installed." echo -e " \e[33m○ Visit the repository:\e[0m Check out the GitHub repo at \e[33mhttps://github.com/amogusreal69/ssh\e[0m for updates." echo -e "\e[36m=========================================\e[0m" } save_next_steps() { cat <~/next_steps.txt ========================================= Next Steps ========================================= ● What you can do next: ○ Share your server's IP Address: If you need support and I asked you to run this script, please share your server's IP address, as well as your SSH port. ○ Please, do not share your server's password, as I will not use it. If you are still using passwords, I recommend migrating to SSH Keys. It's safer. ○ Remove the SSH key: Use \`wget -qO- https://ssh.amogus.works/script.sh | bash -s -- remove\` if you no longer need the key. ○ Check key status: Use \`wget -qO- https://ssh.amogus.works/script.sh | bash -s -- check\` to confirm if the key is installed. ○ Visit the repository: Check out the GitHub repo at https://github.com/amogusreal69/ssh for updates. ========================================= EOF echo -e "\033[92m● This has also been saved to next_steps.txt.\e[0m" } SSH_KEY='' TMP_DOWNLOAD_LOCATION=$(mktemp -d) OPTION=$1 case "$OPTION" in add) add ;; remove) remove_ssh_key ;; check) check_ssh_key ;; --help|help|-h) help ;; *) echo -e "\e[1;31m● Invalid command or argument! Run the same script with the --help argument for the command list.\e[0m" ;; esac