diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm
index c900fcecb906a2bc142a9287a2913b77bf85fd4b..0f9e4d836043dab2e016ccdf83b959017a5803f2 100644
--- a/guix/scripts/archive.scm
+++ b/guix/scripts/archive.scm
@@ -286,6 +286,7 @@ (define (read-key)
 
     ;; Add KEY to the ACL and write that.
     (let ((acl (public-keys->acl (cons key (acl->public-keys acl)))))
+      (mkdir-p (dirname %acl-file))
       (with-atomic-file-output %acl-file
         (lambda (port)
           (display (canonical-sexp->string acl) port))))))