### Godot version

v4.0.beta.custom_build [d1e5903c6]

### System information

Arch Linux kernel 6.1.7-arch1-1 x86_64 OpenSSH 9.1p1-3

### Issue description

When using SSH remote deploy, if the extra args field is empty (the default) the ssh command is not executed with success because a single space is inserted in place of the extra args.

```
Creating temporary directory...
Executing: ssh -p 22  davi@192.168.1.50 mktemp -d
Exit code: 255, Output: ssh: Could not resolve hostname : Name or service not known

ssh: Could not resolve hostname : Name or service not known
```

If any valid argument is passed, the command is executed successfully, in the example below I duplicated the `-p 22`, which is ignored, to show that it is not a problem of the hostname passed.

```
Executing: ssh -p 22 -p 22 davi@192.168.1.50 mktemp -d
Exit code: 0, Output: /tmp/tmp.DwFObXBL2s
```

This is infuriating for when you have non-interactive authentication configured in ssh-agent and just the hostname is needed for the connection.
This occurs for both SSH and SCP.

### Steps to reproduce

1. Enable a project to deploy with ssh
2. Fill only the hostname
3. Try to deploy
4. See the error on the console

### Minimal reproduction project

N/A
bool noto_enabled = (p_preset->get("notarization/notarization").operator int() > 0);
		= OK && noto_enabled) {
			if (export_format == "app") {
				add_message(EXPORT_MESSAGE_INFO, TTR("Notarization"), TTR("Notarization requires the app to be archived first, select the DMG or ZIP export format instead."));
			} else {
				if (ep.step(TTR("Sending archive for notarization"), 4)) {
					return ERR_SKIP;
				}
				err = _notarize(p_preset, p_path);
			}
		}
		// Clean up temporary entitlements files.
		if (FileAccess::exists(hlp_ent_path)) {
			DirAccess::remove_file_or_error(hlp_ent_path);
		}
		// Clean up temporary .app dir and generated entitlements.
		if ((String)(p_preset->get("codesign/entitlements/custom_file")) == "") {
			tmp_app_dir->remove(ent_path);
		}
		if (export_format != "app") {
			if (tmp_app_dir->change_dir(tmp_base_path_name) == OK) {
				tmp_app_dir->erase_contents_recursive();
				tmp_app_dir->change_dir("..");
				tmp_app_dir->remove(pkg_name);
			}
		}
	}
	return err;
}
bool EditorExportPlatformMacOS::has_valid_export_configuration(const Ref<EditorExportPreset> &p_preset, String &r_error, bool &r_missing_templates) const {