### Body

Similarly to SFTP (fixed in https://github.com/apache/airflow/pull/29068) the logic from __init__ should be moved to execute.

The #29068 provides a blueprint for that.

### Committer

- [X] I acknowledge that I am a maintainer/committer of the Apache Airflow project.
create_intermediate_dirs=True,
                dag=dag
            )
    """
    template_fields: Sequence[str] = ("local_filepath", "remote_filepath", "remote_host")
    def __init__(
        self,
        *,
        ssh_hook: SSHHook | None = None,
        sftp_hook: SFTPHook | None = None,
        ssh_conn_id: str | None = None,
        remote_host: str | None = None,
        local_filepath: str | list[str],
        remote_filepath: str | list[str],
        operation: str = SFTPOperation.PUT,
        confirm: bool = True,
        create_intermediate_dirs: bool = False,
        **kwargs,
    ) -> None:
        super().__init__(**kwargs)
        self.ssh_hook = ssh_hook
        self.sftp_hook = sftp_hook
        self.ssh_conn_id = ssh_conn_id
        self.remote_host = remote_host
        self.operation = operation
        self.confirm = confirm
        self.create_intermediate_dirs = create_intermediate_dirs
        self.local_filepath = local_filepath
        self.remote_filepath = remote_filepath
    def execute(self, context: Any) -> str | list[str] | None: