From 87d4cf6499d009ef927e282fd69a7371be283370 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Sun, 10 Oct 2021 03:49:19 -0400 Subject: improve get-host-keys --- get-host-keys | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/get-host-keys b/get-host-keys index f55b6cd..90a44db 100755 --- a/get-host-keys +++ b/get-host-keys @@ -67,13 +67,13 @@ cd "$_TEMP_DIR_" trap 'rm -rf "$_TEMP_DIR_"' EXIT host=${1:-borges} -# ssh-keygen -F "${host#*@}" | grep -v '^#' > ssh_known_hosts 2>/dev/null -# touch ssh_known_hosts.stamp -r ssh_known_hosts - -line=$(crypto_validate_hostname "$host") || die "could not validate hostname cryptographically" - -echo "$line" > ssh_known_hosts -cp ssh_known_hosts ssh_known_hosts~ +if ssh-keygen -F "${host#*@}" | grep -v '^#' > ssh_known_hosts 2>/dev/null +then + cp ssh_known_hosts ssh_known_hosts~ +else + touch ssh_known_hosts~ + crypto_validate_hostname "${host##*@}" >> ssh_known_hosts || die "could not validate hostname cryptographically" +fi ssh \ -F /dev/null \ @@ -83,7 +83,12 @@ ssh \ -o PasswordAuthentication=no \ -o StrictHostKeyChecking=yes \ -n -T \ - "$host" >/dev/null 2>&1 + "$host" >/dev/null 2>&1 || true -cat ssh_known_hosts +if test -t 1 +then + diff -u ssh_known_hosts~ ssh_known_hosts +else + cat ssh_known_hosts +fi -- cgit v1.2.3