summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--src/publish-ip.sh38
2 files changed, 39 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 101e521..7e3fde1 100644
--- a/Makefile
+++ b/Makefile
@@ -17,7 +17,7 @@ samizdat-pinentry: src/samizdat-pinentry.c
17wait_for_files: src/wait_for_files.c 17wait_for_files: src/wait_for_files.c
18 $(CC) $(CFLAGS) $< -o $@ 18 $(CC) $(CFLAGS) $< -o $@
19 19
20bin_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} 20bin_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}
21 21
22initrd_files:=$(wildcard src/initrd/*) dynmenu samizdat-pinentry wait_for_files 22initrd_files:=$(wildcard src/initrd/*) dynmenu samizdat-pinentry wait_for_files
23initramfs_conf_files:=$(wildcard initramfs-tools/*) 23initramfs_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 @@
1#!/bin/sh
2
3determine_lan_ip()
4{
5 ip -4 -oneline addr show |
6 while read n dev _ ip rest; do
7 case "$rest" in
8 *'scope global'*) ;;
9 *) continue ;;
10 esac
11 case "$ip" in
12 192.168.10.1/24) continue ;;
13 esac
14 echo ${ip%/*}
15 break
16 done
17}
18
19ssh_cryptonomic_net__known_hosts()
20{
21cat <<'END'
22|1|ORqVRkqd0LO25vHCB0LezHAgwRE=|ih7EYLpvg9jpU86/0Od0N8Ur36c= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHkIETz7wmKd7TZgb3NPeUElZDjZqw2VPd8yDOBTj5UzUBmcgCyE1oCS3Oe1iO9zJWpPtG0QyYa29lKi+vN6pN4=
23END
24}
25
26tmpfile=$(mktemp) || exit 1
27trap 'rm -f "$tmpfile"' EXIT
28ssh_cryptonomic_net__known_hosts > "$tmpfile"
29
30lan_ip=$(determine_lan_ip)
31
32if [ "$lan_ip" ]; then
33 set -- lan "$lan_ip"
34else
35 set --
36fi
37
38ssh -o GlobalKnownHostsFile="$tmpfile" -i /var/cache/kiki/config/ssh_host_rsa_key dyndns@ssh.cryptonomic.net "$@"