changeset 186:83f164405755

New 'onsubnet' command, new config for master controls
author Steve Huston <huston@astro.princeton.edu>
date Tue, 03 Mar 2020 16:48:59 -0500
parents daa1d18ece79
children 1e15f715858e
files .ssh/config .ssh/onsubnet
diffstat 2 files changed, 48 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/.ssh/config	Tue Mar 03 15:59:27 2020 -0500
+++ b/.ssh/config	Tue Mar 03 16:48:59 2020 -0500
@@ -4,6 +4,22 @@
   ForwardX11 no
   ForwardX11Trusted no
 
+# Let's try a proxy connection here
+Host xanadu.astro.princeton.edu
+  User huston
+  ControlMaster auto
+  ControlPersist yes
+  ControlPath ~/.ssh/sockets/%C
+
+Match host csesbh2.princeton.edu exec "~/.ssh/onsubnet --not 128.112."
+  ProxyJump xanadu.astro.princeton.edu
+
+Host csesbh2.princeton.edu
+  User huston
+  ControlMaster auto
+  ControlPersist yes
+  ControlPath ~/.ssh/sockets/%C
+
 # xanadu-vm and syrinx's keys change, let's try to avoid errors
 Host xanadu-vm syrinx xanadu-vm.astro.princeton.edu syrinx.astro.princeton.edu
   User huston
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.ssh/onsubnet	Tue Mar 03 16:48:59 2020 -0500
@@ -0,0 +1,32 @@
+#!/usr/bin/env bash
+
+if [[ "$1" == "--help" ]] || [[ "$1" == "-h" ]]  || [[ "$1" == "" ]] ; then
+  printf "Usage:\n\tonsubnet [ --not ] partial-ip-address\n\n"
+  printf "Example:\n\tonsubnet 10.10.\n\tonsubnet --not 192.168.0.\n\n"
+  printf "Note:\n\tThe partial-ip-address must match starting at the first\n"
+  printf "\tcharacter of the ip-address, therefore the first example\n"
+  printf "\tabove will match 10.10.10.1 but not 110.10.10.1\n"
+  exit 0
+fi
+
+on=0
+off=1
+if [[ "$1" == "--not" ]] ; then
+  shift
+  on=1
+  off=0
+fi
+
+regexp="^$(sed 's/\./\\./g' <<<"$1")"
+
+if [[ "$(uname)" == "Darwin" ]] ; then
+  ifconfig | fgrep 'inet ' | fgrep -v 127.0.0. | cut -d ' ' -f 2 | egrep -q "$regexp"
+else
+  hostname -I | tr -s " " "\012" | fgrep -v 127.0.0. | egrep -q "$regexp"
+fi
+
+if [[ $? == 0 ]]; then 
+  exit $on
+else
+  exit $off
+fi