diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index bc46ba4f16bc8f4b82f96fe85098b3e2578df1ac..3914435455883045de5f9cac347459da0387e3ef 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -2431,7 +2431,8 @@ class LUAddNode(LogicalUnit):
                                  " for remote verification" % verifier)
       if result[verifier].data['nodelist']:
         for failed in result[verifier].data['nodelist']:
-          feedback_fn("ssh/hostname verification failed %s -> %s" %
+          feedback_fn("ssh/hostname verification failed"
+                      " (checking from %s): %s" %
                       (verifier, result[verifier].data['nodelist'][failed]))
         raise errors.OpExecError("ssh/hostname verification failed.")
 
diff --git a/lib/ssh.py b/lib/ssh.py
index f0362b4b81933a3939d0f2975def532948be2ea2..e89131422586eb532d4ee4240eec9b50a4cfbd4f 100644
--- a/lib/ssh.py
+++ b/lib/ssh.py
@@ -227,7 +227,12 @@ class SshRunner:
     remotehostname = retval.stdout.strip()
 
     if not remotehostname or remotehostname != node:
-      return False, "hostname mismatch, got %s" % remotehostname
+      if node.startswith(remotehostname + "."):
+        msg = "hostname not FQDN"
+      else:
+        msg = "hostname mistmatch"
+      return False, ("%s: expected %s but got %s" %
+                     (msg, node, remotehostname))
 
     return True, "host matches"