diff --git a/lib/config/custom-build-vm.nix b/lib/config/custom-build-vm.nix
index 4ca0d9a..8582ddd 100644
--- a/lib/config/custom-build-vm.nix
+++ b/lib/config/custom-build-vm.nix
@@ -6,6 +6,11 @@
         default = false;
       };
 
+      sharedHostKeys = lib.mkOption {
+        type = lib.types.bool;
+        default = false;
+      };
+
       qemu.runInBackground = lib.mkOption {
         type = lib.types.bool;
         default = false;
@@ -16,12 +21,27 @@
   config = {
     virtualisation =
       let
-        vmConfig = {
-          boot.loader.efi.efiSysMountPoint = lib.mkVMOverride "/boot";
-        };
+        extendVMConfig =
+          vmVariant: {
+            boot.loader.efi.efiSysMountPoint = lib.mkVMOverride "/boot";
+
+            virtualisation.sharedDirectories = lib.optionalAttrs (vmVariant.virtualisation.sharedHostKeys) {
+              hostKeys =
+              let
+                path = "/etc/ssh";
+              in {
+                source = path;
+                target = path;
+              };
+            };
+          };
+
+        virtualisation = config.virtualisation;
       in {
-        vmVariant = vmConfig;
-        vmVariantWithBootLoader = vmConfig;
+        
+        vmVariant = extendVMConfig virtualisation.vmVariant;
+        vmVariantWithBootLoader = extendVMConfig virtualisation.vmVariantWithBootLoader;
+        runAsRoot = lib.mkIf config.virtualisation.sharedHostKeys true;
       };
 
     # Replace native `qemu` with `remote-viewer`