### 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
copy->resize(icon_infos[i].size, icon_infos[i].size, (Image::Interpolation)(p_preset->get("application/icon_interpolation").operator int()));
		if (icon_infos[i].is_png) {
			// Encode PNG icon.
			it->set_image(copy);
			String path = EditorPaths::get_singleton()->get_cache_dir().path_join("icon.png");
			ResourceSaver::save(it, path);
			{
				Ref<FileAccess> f = FileAccess::open(path, FileAccess::READ);
				.is_null()) {
					// Clean up generated file.
					DirAccess::remove_file_or_error(path);
					add_message(EXPORT_MESSAGE_ERROR, TTR("Icon Creation"), vformat(TTR("Could not open icon file \"%s\"."), path));
					return;
				}
				int ofs = data.size();
				uint64_t len = f->get_length();
				data.resize(data.size() + len + 8);
				f->get_buffer(&data.write[ofs + 8], len);
				len += 8;
				len = BSWAP32(len);
				memcpy(&data.write[ofs], icon_infos[i].name, 4);
				encode_uint32(len, &data.write[ofs + 4]);
			}
			// Clean up generated file.
			DirAccess::remove_file_or_error(path);
		} else {
			Vector<uint8_t> src_data = copy->get_data();
			//encode 24bit RGB RLE icon
			{
				int ofs = data.size();