diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | src/publish-ip.sh | 38 |
2 files changed, 39 insertions, 1 deletions
@@ -17,7 +17,7 @@ samizdat-pinentry: src/samizdat-pinentry.c | |||
17 | wait_for_files: src/wait_for_files.c | 17 | wait_for_files: src/wait_for_files.c |
18 | $(CC) $(CFLAGS) $< -o $@ | 18 | $(CC) $(CFLAGS) $< -o $@ |
19 | 19 | ||
20 | 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} | 20 | 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} |
21 | 21 | ||
22 | initrd_files:=$(wildcard src/initrd/*) dynmenu samizdat-pinentry wait_for_files | 22 | initrd_files:=$(wildcard src/initrd/*) dynmenu samizdat-pinentry wait_for_files |
23 | initramfs_conf_files:=$(wildcard initramfs-tools/*) | 23 | 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 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | determine_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 | |||
19 | ssh_cryptonomic_net__known_hosts() | ||
20 | { | ||
21 | cat <<'END' | ||
22 | |1|ORqVRkqd0LO25vHCB0LezHAgwRE=|ih7EYLpvg9jpU86/0Od0N8Ur36c= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHkIETz7wmKd7TZgb3NPeUElZDjZqw2VPd8yDOBTj5UzUBmcgCyE1oCS3Oe1iO9zJWpPtG0QyYa29lKi+vN6pN4= | ||
23 | END | ||
24 | } | ||
25 | |||
26 | tmpfile=$(mktemp) || exit 1 | ||
27 | trap 'rm -f "$tmpfile"' EXIT | ||
28 | ssh_cryptonomic_net__known_hosts > "$tmpfile" | ||
29 | |||
30 | lan_ip=$(determine_lan_ip) | ||
31 | |||
32 | if [ "$lan_ip" ]; then | ||
33 | set -- lan "$lan_ip" | ||
34 | else | ||
35 | set -- | ||
36 | fi | ||
37 | |||
38 | ssh -o GlobalKnownHostsFile="$tmpfile" -i /var/cache/kiki/config/ssh_host_rsa_key dyndns@ssh.cryptonomic.net "$@" | ||