diff --git a/terraform/all-in-one.md b/terraform/all-in-one.md
index 7ea600bb..c9673d8a 100644
--- a/terraform/all-in-one.md
+++ b/terraform/all-in-one.md
@@ -197,31 +197,33 @@ No resources.
 
 ## Inputs
 
-| Name                                                                                                                  | Description                                                                                                                                                                                                                                               | Type                                                                   | Default                                                                 | Required |
-| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | ----------------------------------------------------------------------- | :------: |
-| <a name="input_debug_logging"></a> [debug\_logging](#input_debug_logging)                                             | Enable debug logging                                                                                                                                                                                                                                      | `bool`                                                                 | `false`                                                                 |    no    |
-| <a name="input_deployment_ssh_key"></a> [deployment\_ssh\_key](#input_deployment_ssh_key)                             | Content of private key used to deploy to the target\_host after initial installation. To ensure maximum security, it is advisable to connect to your host using ssh-agent instead of relying on this variable                                             | `string`                                                               | `null`                                                                  |    no    |
-| <a name="input_disk_encryption_key_scripts"></a> [disk\_encryption\_key\_scripts](#input_disk_encryption_key_scripts) | Each script will be executed locally. Output of each will be created at the given path to disko during installation. The keys will be not copied to the final system                                                                                      | <pre>list(object({<br> path = string<br> script = string<br> }))</pre> | `[]`                                                                    |    no    |
-| <a name="input_extra_environment"></a> [extra\_environment](#input_extra_environment)                                 | Extra environment variables to be set during installation. This can be useful to set extra variables for the extra\_files\_script or disk\_encryption\_key\_scripts                                                                                       | `map(string)`                                                          | `{}`                                                                    |    no    |
-| <a name="input_extra_files_script"></a> [extra\_files\_script](#input_extra_files_script)                             | A script that should place files in the current directory that will be copied to the targets / directory                                                                                                                                                  | `string`                                                               | `null`                                                                  |    no    |
-| <a name="input_file"></a> [file](#input_file)                                                                         | Nix file containing the nixos\_system\_attr and nixos\_partitioner\_attr. Use this if you are not using flake                                                                                                                                             | `string`                                                               | `null`                                                                  |    no    |
-| <a name="input_install_port"></a> [install\_port](#input_install_port)                                                | SSH port used to connect to the target\_host, before installing NixOS. If null than the value of `target_port` is used                                                                                                                                    | `string`                                                               | `null`                                                                  |    no    |
-| <a name="input_install_ssh_key"></a> [install\_ssh\_key](#input_install_ssh_key)                                      | Content of private key used to connect to the target\_host during initial installation                                                                                                                                                                    | `string`                                                               | `null`                                                                  |    no    |
-| <a name="input_install_user"></a> [install\_user](#input_install_user)                                                | SSH user used to connect to the target\_host, before installing NixOS. If null than the value of `target_host` is used                                                                                                                                    | `string`                                                               | `null`                                                                  |    no    |
-| <a name="input_instance_id"></a> [instance\_id](#input_instance_id)                                                   | The instance id of the target\_host, used to track when to reinstall the machine                                                                                                                                                                          | `string`                                                               | `null`                                                                  |    no    |
-| <a name="input_kexec_tarball_url"></a> [kexec\_tarball\_url](#input_kexec_tarball_url)                                | NixOS kexec installer tarball url                                                                                                                                                                                                                         | `string`                                                               | `null`                                                                  |    no    |
-| <a name="input_nix_options"></a> [nix\_options](#input_nix_options)                                                   | the options of nix                                                                                                                                                                                                                                        | `map(string)`                                                          | `{}`                                                                    |    no    |
-| <a name="input_nixos_facter_path"></a> [nixos\_facter\_path](#input_nixos_facter_path)                                | Path to which to write a `facter.json` generated by `nixos-facter`.                                                                                                                                                                                       | `string`                                                               | `""`                                                                    |    no    |
-| <a name="input_nixos_generate_config_path"></a> [nixos\_generate\_config\_path](#input_nixos_generate_config_path)    | Path to which to write a `hardware-configuration.nix` generated by `nixos-generate-config`.                                                                                                                                                               | `string`                                                               | `""`                                                                    |    no    |
-| <a name="input_nixos_partitioner_attr"></a> [nixos\_partitioner\_attr](#input_nixos_partitioner_attr)                 | Nixos partitioner and mount script i.e. your-flake#nixosConfigurations.your-evaluated-nixos.config.system.build.diskoNoDeps or just your-evaluated.config.system.build.diskNoDeps. `config.system.build.diskNoDeps` is provided by the disko nixos module | `string`                                                               | n/a                                                                     |   yes    |
-| <a name="input_nixos_system_attr"></a> [nixos\_system\_attr](#input_nixos_system_attr)                                | The nixos system to deploy i.e. your-flake#nixosConfigurations.your-evaluated-nixos.config.system.build.toplevel or just your-evaluated-nixos.config.system.build.toplevel if you are not using flakes                                                    | `string`                                                               | n/a                                                                     |   yes    |
-| <a name="input_no_reboot"></a> [no\_reboot](#input_no_reboot)                                                         | DEPRECATED: Use `phases` instead. Do not reboot after installation                                                                                                                                                                                        | `bool`                                                                 | `false`                                                                 |    no    |
-| <a name="input_phases"></a> [phases](#input_phases)                                                                   | Phases to run. See `nixos-anywhere --help` for more information                                                                                                                                                                                           | `set(string)`                                                          | <pre>[<br> "kexec",<br> "disko",<br> "install",<br> "reboot"<br>]</pre> |    no    |
-| <a name="input_special_args"></a> [special\_args](#input_special_args)                                                | A map exposed as NixOS's `specialArgs` thru a file.                                                                                                                                                                                                       | `any`                                                                  | `{}`                                                                    |    no    |
-| <a name="input_stop_after_disko"></a> [stop\_after\_disko](#input_stop_after_disko)                                   | DEPRECATED: Use `phases` instead. Exit after disko formatting                                                                                                                                                                                             | `bool`                                                                 | `false`                                                                 |    no    |
-| <a name="input_target_host"></a> [target\_host](#input_target_host)                                                   | DNS host to deploy to                                                                                                                                                                                                                                     | `string`                                                               | n/a                                                                     |   yes    |
-| <a name="input_target_port"></a> [target\_port](#input_target_port)                                                   | SSH port used to connect to the target\_host after installing NixOS. If install\_port is not set than this port is also used before installing.                                                                                                           | `number`                                                               | `22`                                                                    |    no    |
-| <a name="input_target_user"></a> [target\_user](#input_target_user)                                                   | SSH user used to connect to the target\_host after installing NixOS. If install\_user is not set than this user is also used before installing.                                                                                                           | `string`                                                               | `"root"`                                                                |    no    |
+| Name                                                                                                                  | Description                                                                                                                                                                                                                                               | Type                                                                   | Default                                                                                    | Required |
+|-----------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:--------:|
+| <a name="input_debug_logging"></a> [debug\_logging](#input_debug_logging)                                             | Enable debug logging                                                                                                                                                                                                                                      | `bool`                                                                 | `false`                                                                                    | no       |
+| <a name="input_deployment_ssh_key"></a> [deployment\_ssh\_key](#input_deployment_ssh_key)                             | Content of private key used to deploy to the target\_host after initial installation. To ensure maximum security, it is advisable to connect to your host using ssh-agent instead of relying on this variable                                             | `string`                                                               | `null`                                                                                     | no       |
+| <a name="input_disk_encryption_key_scripts"></a> [disk\_encryption\_key\_scripts](#input_disk_encryption_key_scripts) | Each script will be executed locally. Output of each will be created at the given path to disko during installation. The keys will be not copied to the final system                                                                                      | <pre>list(object({<br> path = string<br> script = string<br> }))</pre> | `[]`                                                                                       | no       |
+| <a name="input_extra_environment"></a> [extra\_environment](#input_extra_environment)                                 | Extra environment variables to be set during installation. This can be useful to set extra variables for the extra\_files\_script or disk\_encryption\_key\_scripts                                                                                       | `map(string)`                                                          | `{}`                                                                                       | no       |
+| <a name="input_extra_files_script"></a> [extra\_files\_script](#input_extra_files_script)                             | A script that should place files in the current directory that will be copied to the targets / directory                                                                                                                                                  | `string`                                                               | `null`                                                                                     | no       |
+| <a name="input_file"></a> [file](#input_file)                                                                         | Nix file containing the nixos\_system\_attr and nixos\_partitioner\_attr. Use this if you are not using flake                                                                                                                                             | `string`                                                               | `null`                                                                                     | no       |
+| <a name="input_install_port"></a> [install\_port](#input_install_port)                                                | SSH port used to connect to the target\_host, before installing NixOS. If null than the value of `target_port` is used                                                                                                                                    | `string`                                                               | `null`                                                                                     | no       |
+| <a name="input_install_ssh_key"></a> [install\_ssh\_key](#input_install_ssh_key)                                      | Content of private key used to connect to the target\_host during initial installation                                                                                                                                                                    | `string`                                                               | `null`                                                                                     | no       |
+| <a name="input_install_user"></a> [install\_user](#input_install_user)                                                | SSH user used to connect to the target\_host, before installing NixOS. If null than the value of `target_host` is used                                                                                                                                    | `string`                                                               | `null`                                                                                     | no       |
+| <a name="input_instance_id"></a> [instance\_id](#input_instance_id)                                                   | The instance id of the target\_host, used to track when to reinstall the machine                                                                                                                                                                          | `string`                                                               | `null`                                                                                     | no       |
+| <a name="input_kexec_tarball_url"></a> [kexec\_tarball\_url](#input_kexec_tarball_url)                                | NixOS kexec installer tarball url                                                                                                                                                                                                                         | `string`                                                               | `null`                                                                                     | no       |
+| <a name="input_nix_options"></a> [nix\_options](#input_nix_options)                                                   | the options of nix                                                                                                                                                                                                                                        | `map(string)`                                                          | `{}`                                                                                       | no       |
+| <a name="input_nixos_facter_path"></a> [nixos\_facter\_path](#input_nixos_facter_path)                                | Path to which to write a `facter.json` generated by `nixos-facter`.                                                                                                                                                                                       | `string`                                                               | `""`                                                                                       | no       |
+| <a name="input_nixos_generate_config_path"></a> [nixos\_generate\_config\_path](#input_nixos_generate_config_path)    | Path to which to write a `hardware-configuration.nix` generated by `nixos-generate-config`.                                                                                                                                                               | `string`                                                               | `""`                                                                                       | no       |
+| <a name="input_nixos_partitioner_attr"></a> [nixos\_partitioner\_attr](#input_nixos_partitioner_attr)                 | Nixos partitioner and mount script i.e. your-flake#nixosConfigurations.your-evaluated-nixos.config.system.build.diskoNoDeps or just your-evaluated.config.system.build.diskNoDeps. `config.system.build.diskNoDeps` is provided by the disko nixos module | `string`                                                               | n/a                                                                                        | yes      |
+| <a name="input_nixos_system_attr"></a> [nixos\_system\_attr](#input_nixos_system_attr)                                | The nixos system to deploy i.e. your-flake#nixosConfigurations.your-evaluated-nixos.config.system.build.toplevel or just your-evaluated-nixos.config.system.build.toplevel if you are not using flakes                                                    | `string`                                                               | n/a                                                                                        | yes      |
+| <a name="input_no_reboot"></a> [no\_reboot](#input_no_reboot)                                                         | DEPRECATED: Use `phases` instead. Do not reboot after installation                                                                                                                                                                                        | `bool`                                                                 | `false`                                                                                    | no       |
+| <a name="input_phases"></a> [phases](#input_phases)                                                                   | Phases to run. See `nixos-anywhere --help` for more information                                                                                                                                                                                           | `set(string)`                                                          | <pre>[<br> "kexec",<br> "disko",<br> "install",<br> "reboot"<br>]</pre>                    | no       |
+| <a name="input_special_args"></a> [special\_args](#input_special_args)                                                | A map exposed as NixOS's `specialArgs` thru a file.                                                                                                                                                                                                       | `any`                                                                  | `{}`                                                                                       | no       |
+| <a name="input_stop_after_disko"></a> [stop\_after\_disko](#input_stop_after_disko)                                   | DEPRECATED: Use `phases` instead. Exit after disko formatting                                                                                                                                                                                             | `bool`                                                                 | `false`                                                                                    | no       |
+| <a name="input_target_host"></a> [target\_host](#input_target_host)                                                   | DNS host to deploy to                                                                                                                                                                                                                                     | `string`                                                               | n/a                                                                                        | yes      |
+| <a name="input_target_port"></a> [target\_port](#input_target_port)                                                   | SSH port used to connect to the target\_host after installing NixOS. If install\_port is not set than this port is also used before installing.                                                                                                           | `number`                                                               | `22`                                                                                       | no       |
+| <a name="input_target_user"></a> [target\_user](#input_target_user)                                                   | SSH user used to connect to the target\_host after installing NixOS. If install\_user is not set than this user is also used before installing.                                                                                                           | `string`                                                               | `"root"`                                                                                   | no       |
+| <a name="input_ssh_options"></a> [ssh\_options](#input_ssh_options)                                                   | Additional options to pass to the SSH command used to connect to the target_host after installing NixOS.                                                                                                                                                  | `list(string)`                                                         | <pre>[<br> "-o UserKnownHostsFile=/dev/null"<br> "-o StrictHostKeyChecking=no"<br>]</pre>  | no       |
+| <a name="input_ssh_options"></a> [ssh\_options](#input_ssh_options)                                                   | Additional options to pass to the SSH command                                                                                                                                                                                                             | `list(string)`                                                         | <pre>[<br> "-o UserKnownHostsFile=/dev/null",<br> "-o StrictHostKeyChecking=no"<br>]</pre> | no       |
 
 ## Outputs
 
diff --git a/terraform/all-in-one/main.tf b/terraform/all-in-one/main.tf
index 41ab51a2..e95c356e 100644
--- a/terraform/all-in-one/main.tf
+++ b/terraform/all-in-one/main.tf
@@ -55,6 +55,7 @@ module "nixos-rebuild" {
   target_host = var.target_host
   target_user = var.target_user
   target_port = var.target_port
+  ssh_options = var.ssh_options
 }
 
 output "result" {
diff --git a/terraform/all-in-one/variables.tf b/terraform/all-in-one/variables.tf
index 8216532d..fff5d0e3 100644
--- a/terraform/all-in-one/variables.tf
+++ b/terraform/all-in-one/variables.tf
@@ -51,6 +51,15 @@ variable "target_port" {
   default     = 22
 }
 
+variable "ssh_options" {
+  type        = map(string)
+  description = "Additional options to pass to the SSH command used to connect to the target_host after installing NixOS."
+  default     = {
+    UserKnownHostsFile = "/dev/null"
+    StrictHostKeyChecking = "no"
+  }
+}
+
 variable "instance_id" {
   type        = string
   description = "The instance id of the target_host, used to track when to reinstall the machine"
diff --git a/terraform/nixos-rebuild.md b/terraform/nixos-rebuild.md
index 0be26bb7..2987e647 100644
--- a/terraform/nixos-rebuild.md
+++ b/terraform/nixos-rebuild.md
@@ -50,14 +50,15 @@ No modules.
 
 ## Inputs
 
-| Name                                                                                               | Description                                                                                                                                | Type     | Default  | Required |
-| -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | -------- | -------- | :------: |
-| <a name="input_ignore_systemd_errors"></a> [ignore\_systemd\_errors](#input_ignore_systemd_errors) | Ignore systemd errors happening during deploy                                                                                              | `bool`   | `false`  |    no    |
-| <a name="input_nixos_system"></a> [nixos\_system](#input_nixos_system)                             | The nixos system to deploy                                                                                                                 | `string` | n/a      |   yes    |
-| <a name="input_ssh_private_key"></a> [ssh\_private\_key](#input_ssh_private_key)                   | Content of private key used to connect to the target\_host. If set to - no key is passed to openssh and ssh will use its own configuration | `string` | `"-"`    |    no    |
-| <a name="input_target_host"></a> [target\_host](#input_target_host)                                | DNS host to deploy to                                                                                                                      | `string` | n/a      |   yes    |
-| <a name="input_target_port"></a> [target\_port](#input_target_port)                                | SSH port used to connect to the target\_host                                                                                               | `number` | `22`     |    no    |
-| <a name="input_target_user"></a> [target\_user](#input_target_user)                                | User to deploy as                                                                                                                          | `string` | `"root"` |    no    |
+| Name                                                                                               | Description                                                                                                                                | Type           | Default                                                                                   | Required |
+|----------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|----------------|-------------------------------------------------------------------------------------------|:--------:|
+| <a name="input_ignore_systemd_errors"></a> [ignore\_systemd\_errors](#input_ignore_systemd_errors) | Ignore systemd errors happening during deploy                                                                                              | `bool`         | `false`                                                                                   | no       |
+| <a name="input_nixos_system"></a> [nixos\_system](#input_nixos_system)                             | The nixos system to deploy                                                                                                                 | `string`       | n/a                                                                                       | yes      |
+| <a name="input_ssh_private_key"></a> [ssh\_private\_key](#input_ssh_private_key)                   | Content of private key used to connect to the target\_host. If set to - no key is passed to openssh and ssh will use its own configuration | `string`       | `"-"`                                                                                     | no       |
+| <a name="input_target_host"></a> [target\_host](#input_target_host)                                | DNS host to deploy to                                                                                                                      | `string`       | n/a                                                                                       | yes      |
+| <a name="input_target_port"></a> [target\_port](#input_target_port)                                | SSH port used to connect to the target\_host                                                                                               | `number`       | `22`                                                                                      | no       |
+| <a name="input_target_user"></a> [target\_user](#input_target_user)                                | User to deploy as                                                                                                                          | `string`       | `"root"`                                                                                  | no       |
+| <a name="input_ssh_options"></a> [ssh\_options](#input_ssh_options)                                | Additional options to pass to the SSH command                                                                                              | `list(string)` | <pre>[<br> "-o UserKnownHostsFile=/dev/null"<br> "-o StrictHostKeyChecking=no"<br>]</pre> | no       |
 
 ## Outputs
 
diff --git a/terraform/nixos-rebuild/deploy.sh b/terraform/nixos-rebuild/deploy.sh
index 2c075039..69d78ab1 100755
--- a/terraform/nixos-rebuild/deploy.sh
+++ b/terraform/nixos-rebuild/deploy.sh
@@ -20,8 +20,7 @@ workDir=$(mktemp -d)
 trap 'rm -rf "$workDir"' EXIT
 
 sshOpts=(-p "${TARGET_PORT}")
-sshOpts+=(-o UserKnownHostsFile=/dev/null)
-sshOpts+=(-o StrictHostKeyChecking=no)
+sshOpts+=($SSH_OPTIONS)
 
 set +x
 if [[ -n ${SSH_KEY+x} && ${SSH_KEY} != "-" ]]; then
diff --git a/terraform/nixos-rebuild/main.tf b/terraform/nixos-rebuild/main.tf
index ccd36da2..0b12b3ca 100644
--- a/terraform/nixos-rebuild/main.tf
+++ b/terraform/nixos-rebuild/main.tf
@@ -5,6 +5,7 @@ resource "null_resource" "nixos-rebuild" {
   provisioner "local-exec" {
     environment = {
       SSH_KEY = var.ssh_private_key
+      SSH_OPTIONS = join(" ", var.ssh_options)
     }
     command = "${path.module}/deploy.sh ${var.nixos_system} ${var.target_user} ${var.target_host} ${var.target_port} ${var.ignore_systemd_errors}"
   }
diff --git a/terraform/nixos-rebuild/variables.tf b/terraform/nixos-rebuild/variables.tf
index e560f39a..10c93c47 100644
--- a/terraform/nixos-rebuild/variables.tf
+++ b/terraform/nixos-rebuild/variables.tf
@@ -20,6 +20,15 @@ variable "target_port" {
   default     = 22
 }
 
+variable "ssh_options" {
+  type        = list(string)
+  description = "Additional options to pass to the SSH command"
+  default     = [
+    "-o UserKnownHostsFile=/dev/null",
+    "-o StrictHostKeyChecking=no"
+  ]
+}
+
 variable "ssh_private_key" {
   type        = string
   description = "Content of private key used to connect to the target_host. If set to - no key is passed to openssh and ssh will use its own configuration"