27 lines
724 B
Bash
27 lines
724 B
Bash
|
#!/bin/bash
|
||
|
|
||
|
# Finds the SSH private key under ./.vagrant and connects to
|
||
|
# the Vagrant box, port forwarding localhost ports: 8443, 80, 443
|
||
|
PRIVATE_KEY="$(find .vagrant -name "private_key")"
|
||
|
HOST_IP="$(vagrant ssh -c "hostname -I | cut -d' ' -f2" 2>/dev/null)"
|
||
|
MATCH_PATTERN="ssh -fNT -i ${PRIVATE_KEY}.*vagrant@"
|
||
|
|
||
|
function ssh_connect {
|
||
|
sudo 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::-1}" 2>/dev/null
|
||
|
}
|
||
|
|
||
|
set -x
|
||
|
if [ "$(pgrep -afc "$MATCH_PATTERN")" -eq 0 ]; then
|
||
|
ssh_connect
|
||
|
else
|
||
|
pgrep -f "$MATCH_PATTERN" | xargs sudo kill -9
|
||
|
ssh_connect
|
||
|
fi
|
||
|
set +x
|