From 8455a0e2d01dfd658e2094ac05ba21b30ba041aa Mon Sep 17 00:00:00 2001 From: Kris Lamoureux Date: Sun, 23 Jul 2023 18:46:40 -0400 Subject: [PATCH] testing --- run-proxy.sh | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 run-proxy.sh diff --git a/run-proxy.sh b/run-proxy.sh new file mode 100755 index 0000000..564b25e --- /dev/null +++ b/run-proxy.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +# Find private key file +PRIVATE_KEY="$(find .vagrant -name "private_key")" + +# Does the private_key file exist? +if [ ! -f "$PRIVATE_KEY" ]; then + echo "[ERROR] File not found at \"$PRIVATE_KEY\"" + exit 1 +fi + +# Is the private_key a valid SSH key? +echo "Checking validity of private key at $(pwd)/$PRIVATE_KEY" +if ! ssh-keygen -l -f "$PRIVATE_KEY"; then + echo "[Error] The private key at \"$PRIVATE_KEY\" is invalid (CODE: $?)" + exit 1 +fi + +# Find an IP on the VM for the SSH tunnel +HOST_IP="$(vagrant ssh -c "hostname -I | cut -d' ' -f${HOSTNAME_FIELD:-1}" 2>/dev/null | sed 's/.$//')" + +# SSH command to match in processes table +CMD="ssh -fNT -i $PRIVATE_KEY -L 8443:localhost:8443 -L 80:localhost:80 -L 443:localhost:443.*vagrant@$HOST_IP" + +# Not just after PIDs +# shellcheck disable=SC2009 +PS_TUNNELS="$(ps aux | grep -e "$CMD" | grep -v grep)" +PS_COUNTER="$(echo "$PS_TUNNELS" | wc -l)" + +if [ "$PS_COUNTER" -gt 0 ]; then + echo "[ERROR] Tunnel(s) already seems to exist (counted $PS_COUNTER)" + echo \""$PS_TUNNELS"\" + exit 1 +fi + +# Create an SSH tunnel +echo "Starting background SSH connection for localhost port forwarding" +set -x +ssh -fNT -i "$PRIVATE_KEY" \ + -L 8443:localhost:8443 \ + -L 80:localhost:80 \ + -L 443:localhost:443 \ + -o UserKnownHostsFile=/dev/null \ + -o StrictHostKeyChecking=no \ + vagrant@"${HOST_IP}" 2>/dev/null +