autossh: run autossh with a reverse tunnel
authorKristof Provost <kp@FreeBSD.org>
Wed, 12 Jul 2023 11:08:31 +0000 (13:08 +0200)
committerKristof Provost <kp@FreeBSD.org>
Wed, 12 Jul 2023 11:08:31 +0000 (13:08 +0200)
This will be the primary method of connecting to these devices, and will
be the method we use to push ansible configuration.

(We can't just rely on ansible-poll because we may want to include
secrets from ansible-vault)

image/overlay/domotica/etc/rc.d/autossh [new file with mode: 0755]
image/overlay/domotica/home/kp/.ssh/id_rsa [new file with mode: 0644]
image/overlay/domotica/home/kp/.ssh/id_rsa.pub [new file with mode: 0644]
image/overlay/domotica/home/kp/.ssh/known_hosts [new file with mode: 0644]
image/overlay/domotica/var/cron/tabs/root
image/packagelist

diff --git a/image/overlay/domotica/etc/rc.d/autossh b/image/overlay/domotica/etc/rc.d/autossh
new file mode 100755 (executable)
index 0000000..479e4d2
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+
+# PROVIDE: autossh
+# REQUIRE: sshd NETWORKING
+# BEFORE: LOGIN
+
+. /etc/rc.subr
+
+name="autossh"
+start_cmd="autossh_start"
+status_cmd="autossh_status"
+extra_commands="status"
+
+autossh_start()
+{
+       echo "Starting autossh..."
+
+       /usr/local/bin/sudo -u kp \
+           /usr/local/bin/tmux new-session -d \
+           "autossh -M 0 -p 2207 -N -R ${control_port}:localhost:22 \
+           -o ExitOnForwardFailure=yes \
+           domotica@kosmos.sigsegv.be"
+}
+
+autossh_status()
+{
+       if pidof autossh >/dev/null;
+       then
+               echo "OK"
+       else
+               echo "FAIL"
+               exit 1
+       fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/image/overlay/domotica/home/kp/.ssh/id_rsa b/image/overlay/domotica/home/kp/.ssh/id_rsa
new file mode 100644 (file)
index 0000000..b9e0cc8
--- /dev/null
@@ -0,0 +1,38 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
+NhAAAAAwEAAQAAAYEAtv8irs8k/BYtn5eJMj9lGdT5PgfmeJnteas+MzCi4mSVmK16UjfS
+fpbJSHl5/4IMqZShtilQwf2xHkGRfd/D8tXs1l2GMoGzmsO7cfGqwBQoxgfOTucuylgc5E
+CGvnTmusw4KiHmHJGCGf+CHolGhqOJxglw756+lllowRB5wwWAAQzqhO+NT+TsLzLIbezh
+pYyLKPr9HQyIzLZtb0C2EKeVMclXPtZoDnh1xBNjr1CjgBc6dL6aJnZS0ABLfEdhZFw7b0
+Cpi7Yx8OLKMQtubefGiLB0KHa23uhjVlhB0s8g7rGLG0BCuyxw/aIcrJBRwehfg4hxuXXp
+THtMoE68JoEJr9gKfWHUjyYkkT2GEr3E0uiP2oLF30sOmbJwOkzXqg4TrrswqSCXcZkQs+
+3sHMJjyVvRRGPN+0uF99wQOiJKMY7Lh856rjSHOTH73oEyPXY82G5YC3o3qEVml9RNfpsQ
+GY/kiDjpCpesAX0LMvCkLZh4mXTfwGc5+K5yHbMnAAAFgCjKGLcoyhi3AAAAB3NzaC1yc2
+EAAAGBALb/Iq7PJPwWLZ+XiTI/ZRnU+T4H5niZ7XmrPjMwouJklZitelI30n6WyUh5ef+C
+DKmUobYpUMH9sR5BkX3fw/LV7NZdhjKBs5rDu3HxqsAUKMYHzk7nLspYHORAhr505rrMOC
+oh5hyRghn/gh6JRoajicYJcO+evpZZaMEQecMFgAEM6oTvjU/k7C8yyG3s4aWMiyj6/R0M
+iMy2bW9AthCnlTHJVz7WaA54dcQTY69Qo4AXOnS+miZ2UtAAS3xHYWRcO29AqYu2MfDiyj
+ELbm3nxoiwdCh2tt7oY1ZYQdLPIO6xixtAQrsscP2iHKyQUcHoX4OIcbl16Ux7TKBOvCaB
+Ca/YCn1h1I8mJJE9hhK9xNLoj9qCxd9LDpmycDpM16oOE667MKkgl3GZELPt7BzCY8lb0U
+RjzftLhffcEDoiSjGOy4fOeq40hzkx+96BMj12PNhuWAt6N6hFZpfUTX6bEBmP5Ig46QqX
+rAF9CzLwpC2YeJl038BnOfiuch2zJwAAAAMBAAEAAAGALaxOFr1CqNxMNMnYhz8FV8YtEw
+tbvXwFpllUI+iersyV/c5GemDOW6P8xubyyQ/HY0fieJmlO1W7MCcDThxcRq6X9wTOqqpu
+jlEN5ql/iYM+jfaCynSu2/fT9jAYsU5yC+tOlU1ypmy2wRBhhIeUn6QPjerrUhMX1GSqXY
+1kJoWn5hs4KUe0yF0Fid4t4im+Q9hpHyhNpkNrnVRmyd6n0k5RUWTELr3KqNnt4qtINQh2
+VlD12Q99X94mWx3HuVQDEbNwa/M943rerVPyzEpK6rBv99QkVxp/Co21xsUAbHIJqucXF4
+aPsFfLK/bfF1AVyy6IG1YkZ+yFac8Xnm9gWcU+ehE5891k1znWs1RjfNUYxfXwh34fATfe
+12lB6yp8K9eRtsZ/zChyOnRKB7j/WNVnJL5XrXoIaG6lzvPVdjZXjHPh3/8sB8kFZTvSps
+AMITzaeNKG0UpoCFXf3v9I3BfXHlgJuPOvLvnNHcfDRVrDn/axb66XmwqQnGEDl3j5AAAA
+wQC0AZxYESTZ9qPHFw1rYB1GCuX57QgKqL0AvP94DHtgVLxyL6/dC6w0MNAMJxkSXlbJaY
+qh77bHRp82bYUPmoAeRQyBH4qSyxadSgsnJPa88Ul6zyu+hLoxNGFjOt6blOSm4qlw0CJy
+Rl7rMnXb+mBoRJEIHbdYTdVuLRN0qmYhEEFr6RDNH87KvGdIXL1zLuSYjEi0m+kUxMKyEE
+ISiIVnepvQTaKN++tVYKMYOvwE3wvkiZrrLlLz4U6bHu+OspwAAADBAN/w8kUDzi3scz6q
+NGqjxeJbG4Xzao2TABEcfU6FxSyl9qtyt1dTxQAYRVcCZEsROLRH/s8R3Ny4OQDYpfwg39
+PnL8FZh09opGhKb2ubqTawbn77iCYJ6Ipymt8YDaZMCZ0ObrXlZFw1zi/Sz6vdjWVCgMTq
+CTDHHpghlio08DTVYY9XNKNj3dq40aYq7FTYEl5RS4ZHvftKyq3cFqamHfaNpIUkC/WNDK
+2GLrYBCwRqJMZuMB9/3oPidCeM8l0UQwAAAMEA0TGkWybWuPEqsv5ounJAL5h1WwnZVYsc
+2KV4f7HyJfE6NjZMMEOVnYnHNTe0Rwc6Dntv923WNArPe3jPRzao5FDyL3sdqsh0xVPYH7
+cCgw1z9DHKwQePiquol8dMNN8Odt1YRxn2xDQip+NDVPy2JQ8bh7M1/rUGHeR9iwx1HQOy
+tEl9IghrSsHSbi6kskt414nNCCNiJVNy4e9bqqPNuUdjMCTqYjnLs2X4kSnhVQqbN/0b0Z
+3fU63civFjkslNAAAABmtwQG51dAECAwQ=
+-----END OPENSSH PRIVATE KEY-----
diff --git a/image/overlay/domotica/home/kp/.ssh/id_rsa.pub b/image/overlay/domotica/home/kp/.ssh/id_rsa.pub
new file mode 100644 (file)
index 0000000..46b32a5
--- /dev/null
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC2/yKuzyT8Fi2fl4kyP2UZ1Pk+B+Z4me15qz4zMKLiZJWYrXpSN9J+lslIeXn/ggyplKG2KVDB/bEeQZF938Py1ezWXYYygbOaw7tx8arAFCjGB85O5y7KWBzkQIa+dOa6zDgqIeYckYIZ/4IeiUaGo4nGCXDvnr6WWWjBEHnDBYABDOqE741P5OwvMsht7OGljIso+v0dDIjMtm1vQLYQp5UxyVc+1mgOeHXEE2OvUKOAFzp0vpomdlLQAEt8R2FkXDtvQKmLtjHw4soxC25t58aIsHQodrbe6GNWWEHSzyDusYsbQEK7LHD9ohyskFHB6F+DiHG5delMe0ygTrwmgQmv2Ap9YdSPJiSRPYYSvcTS6I/agsXfSw6ZsnA6TNeqDhOuuzCpIJdxmRCz7ewcwmPJW9FEY837S4X33BA6IkoxjsuHznquNIc5MfvegTI9djzYblgLejeoRWaX1E1+mxAZj+SIOOkKl6wBfQsy8KQtmHiZdN/AZzn4rnIdsyc= kp@nut
diff --git a/image/overlay/domotica/home/kp/.ssh/known_hosts b/image/overlay/domotica/home/kp/.ssh/known_hosts
new file mode 100644 (file)
index 0000000..e8de663
--- /dev/null
@@ -0,0 +1,3 @@
+[kosmos.sigsegv.be]:2207 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINxjvBaEANdPe1yq3jk/y9bDspKfelTYqZzVm96z9Khw
+[kosmos.sigsegv.be]:2207 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCnL3dW4FREQLShLjz0jA4zMtkx24OnmfPjpdQ/LWsy8UHaICRH3dPRD09qnWpZI8lDnS4RJ03MYmpPR9X3nvdx5gyEuHwQooJFrZm+jh4APQKx6k8rkdt3gkx09yjqYhc7FY7MitJhAGcDELg3allsm8XFI8r4mbcNCmyF9OlGQTj0AxORXVBU8sFwq6hD2W98+TPev+4Vso55C4baVA5bblcl4tnKE8Yfs03btYSzvbCOMIL5qhU3km5cLli8JVOPks6QEbAvH6Tks0CWUS7PSWlVfyxoGzyjTcQctVS6/d90C5RcFbiQs6eFvSBbnUvRYGaBhr2+rK6ifApZb/lziHxLr8jvTo5ilAYc9DSR9AwITZijKkTASW5X/G9qrASj/+Qy0+1CeAGChdTMiTSl/kJDywMoH84psZ3d29MsgHOgKe7yKW6zkDNIGs+ucUMu0toAgNG+n+ujGMTGexiXh6/wpch9lA49nTWAjaYaVV3wAu9tBnTQU+P3I4zurSU=
+[kosmos.sigsegv.be]:2207 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBD5dw+Ebj/6bwOuq5rbi8QvmuPJPivqZqGOzItxR89Id6l7IaxMRZ7lYFvpNgLKqimiXg/Dkm/gtlxuvO9kNtJg=
index e65f859..7704ef0 100644 (file)
@@ -1 +1,2 @@
 1 5 * * * /home/kp/bin/ansible_poll
+*/5 * * * * /etc/rc.d/autossh status || /etc/rc.d/autossh start
index 5f28e1c..c9dc614 100644 (file)
@@ -6,6 +6,7 @@ editors/vim
 devel/git
 shells/zsh
 security/autossh
+sysutils/pidof
 
 sysutils/ansible-sysrc
 sysutils/ansible