diff --git a/cmd/headscale/cli/debug.go b/cmd/headscale/cli/debug.go
index 46bdb9e..8010a9b 100644
--- a/cmd/headscale/cli/debug.go
+++ b/cmd/headscale/cli/debug.go
@@ -9,6 +9,16 @@ import (
 	"google.golang.org/grpc/status"
 )
 
+const (
+	keyLength             = 64
+	errPreAuthKeyTooShort = Error("key too short, must be 64 hexadecimal characters")
+)
+
+// Error is used to compare errors as per https://dave.cheney.net/2016/04/07/constant-errors
+type Error string
+
+func (e Error) Error() string { return string(e) }
+
 func init() {
 	rootCmd.AddCommand(debugCmd)
 
@@ -77,6 +87,16 @@ var createNodeCmd = &cobra.Command{
 
 			return
 		}
+		if len(machineKey) != keyLength {
+			err = errPreAuthKeyTooShort
+			ErrorOutput(
+				err,
+				fmt.Sprintf("Error: %s", err),
+				output,
+			)
+
+			return
+		}
 
 		routes, err := cmd.Flags().GetStringSlice("route")
 		if err != nil {