dsa-check-config: check if existing ed25519 host keys are in ldap
[mirror/dsa-nagios.git] / dsa-nagios-checks / checks / dsa-check-config
index 4a59c65..ae5fa74 100755 (executable)
@@ -57,8 +57,29 @@ check_ldap_conf() {
        log warn "ldap.conf does not have URI, BASE, TLS_CACERT, TLS_REQCERT all configured correctly"
 }
 
+check_ssh_hostkeys() {
+       if [ -e /etc/ssh/ssh_host_ed25519_key ] ; then
+               if ! [ -e /etc/ssh/ssh_host_ed25519_key.pub ]; then
+                       log warn "Have /etc/ssh/ssh_host_ed25519_key without .pub"
+                       return
+               fi
+               if cat /etc/ssh/ssh_known_hosts | awk -v hostname=$(hostname -f) '{split($1,a,","); if (a[1] == hostname) { print } }' | grep -q -F -f /etc/ssh/ssh_host_ed25519_key.pub; then
+                       log ok "ed25519 host key in known_hosts"
+                       return
+               else
+                       log warn "ed25519 host key missing from known_hosts"
+                       return
+               fi
+       else
+               log ok "no ed25519 host key."
+               return
+       fi
+}
+
+
 check_aliases
 check_ldap_conf
+check_ssh_hostkeys
 
 [ "$critical" = "" ] || echo -n "Critical: $critical; "
 [ "$warn" = "" ] || echo -n "Warning: $warn; "