From 26de82e40c38cb1f09fb1e232a12b09c131a7573 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Tue, 3 May 2016 13:03:33 +0200 Subject: publish-ip.sh --- Makefile | 2 +- src/publish-ip.sh | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 src/publish-ip.sh diff --git a/Makefile b/Makefile index 101e521..7e3fde1 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ samizdat-pinentry: src/samizdat-pinentry.c wait_for_files: src/wait_for_files.c $(CC) $(CFLAGS) $< -o $@ -bin_programs=$(addprefix src/, xorriso-usb.sh btrfs-functions.sh btrfs-receive-root.sh btrfs-send-root.sh var.sh grub-efi.sh keygen.sh initrd.sh qemu.sh btarfs dnsmasq-dhcp-script.sh samizdat-password-agent samizdat-gpg-agent) samizdat-paths.sh ${cc_files} +bin_programs=$(addprefix src/, xorriso-usb.sh btrfs-functions.sh btrfs-receive-root.sh btrfs-send-root.sh var.sh grub-efi.sh keygen.sh initrd.sh qemu.sh btarfs dnsmasq-dhcp-script.sh samizdat-password-agent samizdat-gpg-agent publish-ip.sh) samizdat-paths.sh ${cc_files} initrd_files:=$(wildcard src/initrd/*) dynmenu samizdat-pinentry wait_for_files initramfs_conf_files:=$(wildcard initramfs-tools/*) diff --git a/src/publish-ip.sh b/src/publish-ip.sh new file mode 100644 index 0000000..7da41b9 --- /dev/null +++ b/src/publish-ip.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +determine_lan_ip() +{ + ip -4 -oneline addr show | + while read n dev _ ip rest; do + case "$rest" in + *'scope global'*) ;; + *) continue ;; + esac + case "$ip" in + 192.168.10.1/24) continue ;; + esac + echo ${ip%/*} + break + done +} + +ssh_cryptonomic_net__known_hosts() +{ +cat <<'END' +|1|ORqVRkqd0LO25vHCB0LezHAgwRE=|ih7EYLpvg9jpU86/0Od0N8Ur36c= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHkIETz7wmKd7TZgb3NPeUElZDjZqw2VPd8yDOBTj5UzUBmcgCyE1oCS3Oe1iO9zJWpPtG0QyYa29lKi+vN6pN4= +END +} + +tmpfile=$(mktemp) || exit 1 +trap 'rm -f "$tmpfile"' EXIT +ssh_cryptonomic_net__known_hosts > "$tmpfile" + +lan_ip=$(determine_lan_ip) + +if [ "$lan_ip" ]; then + set -- lan "$lan_ip" +else + set -- +fi + +ssh -o GlobalKnownHostsFile="$tmpfile" -i /var/cache/kiki/config/ssh_host_rsa_key dyndns@ssh.cryptonomic.net "$@" -- cgit v1.2.3