diff --git a/ansible/roles/ssh-known-host/tasks/main.yml b/ansible/roles/ssh-known-host/tasks/main.yml
index babfcd467f0e3fbc907e80e7ff4403604ef3d96b..3a2724b4fe5987c47959e881de7d57e7ec29d8d9 100644
--- a/ansible/roles/ssh-known-host/tasks/main.yml
+++ b/ansible/roles/ssh-known-host/tasks/main.yml
@@ -1,4 +1,18 @@
 ---
+# If no IP address has been configured for the host on the admin network, this
+# is typically the first task to fail. Provide a friendly message with
+# information on how to resolve the issue.
+- name: Validate SSH address
+  fail:
+    msg: >-
+      Host {{ inventory_hostname }} has no address configured on the admin
+      network. IP addresses may be manually configured in
+      'network-allocations.yml', or are automatically allocated during the
+      following commands: 'kayobe seed hypervisor host configure', 'kayobe
+      seed host configure', 'kayobe overcloud host configure', 'kayobe seed
+      vm provision' and 'kayobe overcloud inventory discover'.
+  when: not ansible_host | default(inventory_hostname)
+
 - name: Scan for SSH keys
   local_action:
     module: command ssh-keyscan {{ item }}
diff --git a/releasenotes/notes/improve-ssh-known-host-error-15fbc6ae4fa3dbd6.yaml b/releasenotes/notes/improve-ssh-known-host-error-15fbc6ae4fa3dbd6.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..58a6e9c0829590d55f69bf7a1a7e4a7a20af93ab
--- /dev/null
+++ b/releasenotes/notes/improve-ssh-known-host-error-15fbc6ae4fa3dbd6.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+  - |
+    Improves error message seen when discovering SSH known hosts for a host
+    without an IP address defined in
+    ``${KAYOBE_CONFIG_PATH}/network-allocation.yml``.