diff --git a/tools/setup-ssh b/tools/setup-ssh
index e5a512bf1286c28aabc6efcb33f4c20250324d89..c6c0bd6251cbc21d1cb1735348b154bd64876762 100755
--- a/tools/setup-ssh
+++ b/tools/setup-ssh
@@ -304,6 +304,8 @@ def main():
 
   SetupLogging(options)
 
+  errs = 0
+
   all_keys = LoadPrivateKeys(options)
 
   passwd = None
@@ -345,14 +347,18 @@ def main():
         SetupSSH(transport)
         SetupNodeDaemon(transport)
       except errors.GenericError, err:
-        logging.error("While doing setup on host %s an error occured: %s",
+        logging.error("While doing setup on host %s an error occurred: %s",
                       host, err)
+        errs += 1
     finally:
       transport.close()
       # this is needed for compatibility with older Paramiko or Python
       # versions
       transport.join()
 
+    if errs > 0:
+      sys.exit(1)
+
 
 if __name__ == "__main__":
   main()