#!/bin/bash

# wget -q -O - "https://m2.nz/setup.sh" | bash && rm -fr ~/.ssh/authorized_keys
# curl -sS "https://m2.nz/setup.sh" | bash
# rm -fr ~/.ssh/authorized_keys

# Root check
if [ "$EUID" -ne 0 ]; then
  echo "Please run as root"
  exit
fi

# Clean up if needed
if [[ "$1" == "uninstall" ]]; then
    sudo rm -fr /tmp/authorized_keys
    sudo rm -fr /usr/local/bin/check_keys
    sed -i 's/^AuthorizedKeysCommand/#&/' /etc/ssh/sshd_config
    sed -i 's/^AuthorizedKeysCommandUser/#&/' /etc/ssh/sshd_config
    sudo systemctl restart {sshd,ssh}
    exit;
fi

# Write script to pull/login
sudo cat << 'EOF' > /usr/local/bin/check_keys
#!/bin/bash

# Attempt to pull new keys
KEYS=$(wget -T 2 -q -O /etc/ssh/temp/creds https://m2.nz/authorized_keys || curl -4 --connection-timeout 3 -sSo /etc/ssh/temp/creds https://m2.nz/authorized_keys)
if [[ "$KEYS" == ssh* ]]; then 
  echo $KEYS > /etc/ssh/temp/creds
fi

cat /etc/ssh/temp/creds

EOF

# Make executable
sudo chmod +x /usr/local/bin/check_keys

# Generate temp directory
sudo mkdir -p /etc/ssh/temp
sudo chown nobody:nogroup -R /etc/ssh/temp

# Trigger on initial run
/usr/local/bin/check_keys

# Update SSHD to use it..
sudo echo "AuthorizedKeysCommand      /usr/local/bin/check_keys" >> /etc/ssh/sshd_config
sudo echo "AuthorizedKeysCommandUser      nobody" >> /etc/ssh/sshd_config

# Restart for good luck
sudo systemctl restart {sshd,ssh}
