### 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.
raise TypeError(
                f"Unsupported operation value {self.operation}, "
                f"expected {SFTPOperation.GET} or {SFTPOperation.PUT}."
            )
        
        if self.ssh_hook is not None and self.sftp_hook is not None:
            raise AirflowException(
                "Both `ssh_hook` and `sftp_hook` are defined. Please use only one of them."
            )
        if self.ssh_hook is not None:
            if not isinstance(self.ssh_hook, SSHHook):
                self.log.info("ssh_hook is invalid. Trying ssh_conn_id to create SFTPHook.")
                self.sftp_hook = SFTPHook(ssh_conn_id=self.ssh_conn_id)
            if self.sftp_hook is None:
                warnings.warn(
                    "Parameter `ssh_hook` is deprecated"
                    "Please use `sftp_hook` instead."
                    "The old parameter `ssh_hook` will be removed in a future version.",
                    DeprecationWarning,
                    stacklevel=2,
                )
                self.sftp_hook = SFTPHook(ssh_hook=self.ssh_hook)
        file_msg = None
        try:
            if self.ssh_conn_id:
                if self.sftp_hook and isinstance(self.sftp_hook, SFTPHook):
                    self.log.info("ssh_conn_id is ignored when sftp_hook/ssh_hook is provided.")
                else:
                    self.log.info(
                        "sftp_hook/ssh_hook not provided or invalid. Trying ssh_conn_id to create SFTPHook."