#!/usr/bin/env bash # # Setup or remove an SSH hidden service on Debian based systems. # # Usage: # # Setup SSH hidden service: # $ curl -Ls https://git.io/tor-ssh | bash -s -- --setup-tor-ssh # # Remove SSH hidden service: # $ curl -Ls https://git.io/tor-ssh | bash -s -- --remove-tor-ssh setup_ssh_hidden_service() { echo "Installing Tor..." echo "" sudo apt-get install -y tor echo "Adding SSH hidden service to torrc..." echo "" torrc_data=" SocksPort 0 HiddenServiceDir /var/lib/tor/umbrel-remote-ssh/ HiddenServicePort 22 127.0.0.1:22" echo "${torrc_data}" | sudo tee --append /etc/tor/torrc echo "Restarting Tor to load changes..." echo "" sudo systemctl restart tor sleep 5 echo "Getting Tor hidden service address..." echo "" sudo cat /var/lib/tor/umbrel-remote-ssh/hostname } remove_ssh_hidden_service() { echo "Removing Tor..." echo "" sudo apt-get purge -y tor } arg="${1}" if [[ "${arg}" == "--setup-tor-ssh" ]] then setup_ssh_hidden_service elif [[ "${arg}" == "--remove-tor-ssh" ]] then remove_ssh_hidden_service else echo "Invalid argument, pass in --setup-tor-ssh or --remove-tor-ssh" fi