### 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
if (err != OK || (str.find("not found") != -1) || (str.find("not recognized") != -1)) {
		add_message(EXPORT_MESSAGE_WARNING, TTR("Resources Modification"), TTR("Could not start rcedit executable. Configure rcedit path in the Editor Settings (Export > Windows > rcedit), or disable \"Application > Modify Resources\" in the export preset."));
		return err;
	}
	print_line("rcedit (" + p_path + "): " + str);
	if (str.find("Fatal error") != -1) {
		add_message(EXPORT_MESSAGE_WARNING, TTR("Resources Modification"), vformat(TTR("rcedit failed to modify executable: %s."), str));
		return FAILED;
	}
	return OK;
}
Error EditorExportPlatformWindows::_code_sign(const Ref<EditorExportPreset> &p_preset, const String &p_path) {
	List<String> args;
#ifdef WINDOWS_ENABLED
	String signtool_path = EDITOR_GET("export/windows/signtool");
	if (!signtool_path.is_empty() && !FileAccess::exists(signtool_path)) {
		add_message(EXPORT_MESSAGE_WARNING, TTR("Code Signing"), vformat(TTR("Could not find signtool executable at \"%s\"."), signtool_path));
		return ERR_FILE_NOT_FOUND;
	}
	if (signtool_path.is_empty()) {
		signtool_path = "signtool"; 
	}
#else
	String signtool_path = EDITOR_GET("export/windows/osslsigncode");
	if (!signtool_path.is_empty() && !FileAccess::exists(signtool_path)) {
		add_message(EXPORT_MESSAGE_WARNING, TTR("Code Signing"), vformat(TTR("Could not find osslsigncode executable at \"%s\"."), signtool_path));
		return ERR_FILE_NOT_FOUND;
	}
	if (signtool_path.is_empty()) {
		signtool_path = "osslsigncode";