Send info about the SSH debug connection to the backend/client. Must be called *at most once* for each job.
        :exception JobNotRunningException: is raised when the job is not running anymore (send_job_result already called)
        :exception TooManyCallsException: is raised when this function has been called more than once

async def send_ssh_job_info(self, job_id: BackendJobId, host: str, port: int, key: str):
        """
        Send info about the SSH debug connection to the backend/client. Must be called *at most once* for each job.
        :exception JobNotRunningException: is raised when the job is not running anymore (send_job_result already called)
        :exception TooManyCallsException: is raised when this function has been called more than once
        """
        if job_id not in self.__running_job:
            raise JobNotRunningException()
        if self.__running_job[job_id]:
            raise TooManyCallsException()
        self.__running_job[job_id] = True  # now we have sent ssh info
        await ZMQUtils.send(self.__backend_socket, AgentJobSSHDebug(job_id, host, port, key))