Thanks to Matthias Wiedemann.
I used the SSH tunneling https://www.ssh.com/academy/ssh/tunneling/example as Matthias Wiedemann advised.
Total:
1 step. Connecting via SSH and create session SSH
SSH ssh = new SSH(user, password, host, port);
Session session = SSHUtil.createSession(ssh);
2 step. Creating a tunnel using SSH
SSHUtil.createChannel(session, outputConsole);
SSHUtil.createSshTunnel(session, port);
3 step. Connection via Telnet and executing Telnet commands using the tunnel port (instead of 5000, the port became 9999).
clientForTelnet = new ClientForTelnet(new Telnet(host, port));
outputConsole.print(TelnetUtil.connect(clientForTelnet));
outputConsole is PrintStream.
I got the following:
1.
public class SSHUtil{
    private final static Logger LOGGER = LogManager.getLogger(SSHUtil.class);
    public static Session createSession(SSH ssh) {
        Session session = null;
        try {
            session = new JSch().getSession(ssh.getUSER(), ssh.getHOST().getIp(), ssh.getPORT().getPort());
            session.setPassword(ssh.getPASSWORD());
            session.setConfig("StrictHostKeyChecking", "no"); // It must not be recommended, but if you want to skip host-key check
            session.connect(10000);
            LOGGER.info("SSH session created");
        } catch (JSchException e) {
            LOGGER.error("SSH session not created " + e);
        }
        return session;
    }
    public static Channel createChannel(Session session, PrintStream output) {
        Channel channel = null;
        try {
            channel = session.openChannel("shell");
            channel.setInputStream(System.in);
            channel.setOutputStream(output);
            //  streamOut = channel.getOutputStream();
            channel.connect(10000);
            LOGGER.info("SSH channel created");
        } catch (JSchException e) {
            LOGGER.error("SSH channel not created " + e);
        }
        return channel;
    }
    public static void createSshTunnel(Session session, Port port) {
        // TODO сделать пул портов, чтобы исключить вероятность, что порт 9999 занят
        try {
            session.setPortForwardingL(9999, session.getHost(), port.getPort());
            LOGGER.info("Tunnel created localhost:" + 9999 + " -> " + session.getHost() + ":" + port.getPort());
        } catch (JSchException e) {
            LOGGER.error("SSH tunnel not created " + e);
        }
    }
    public static void disconnect(Session session) {
        if (session != null && session.isConnected()) {
            session.disconnect();
        }
    }
}
- public class TelnetUtil {
 
    private final static Logger LOGGER = LogManager.getLogger(TelnetUtil.class);
    public static String connect(ClientForTelnet clientForTelnet) {
        try {
            // Connect to the server
            clientForTelnet.getTc().connect(clientForTelnet.getTelnet().getHOST().getIp(), clientForTelnet.getTelnet().getPORT().getPort());
            // Get input and output stream references
            clientForTelnet.setIn(clientForTelnet.getTc().getInputStream());
            clientForTelnet.setOut(new PrintStream(clientForTelnet.getTc().getOutputStream()));
        } catch (IOException e) {
            LOGGER.error(e);
        }
        return readUntil(clientForTelnet.getPrompt(), clientForTelnet.getIn());
    }
    public static String readUntil(String pattern, InputStream in) {
        StringBuilder sb = new StringBuilder();
        try {
            char lastChar = pattern.charAt(pattern.length() - 1);
            boolean found = false;
            char ch = (char) in.read();
            while (true) {
           //     System.out.print(ch);
                sb.append(ch);
                if (ch == lastChar) {
                    if (sb.toString().endsWith(pattern)) {
                        return sb.toString();
                    }
                }
                ch = (char) in.read();
            }
        } catch (IOException e) {
            LOGGER.error(e);
        }
        return sb.toString();
    }
    public static void write(String value, PrintStream out) {
        out.println(value);
        out.flush();
    }
    public static String sendCommand(ClientForTelnet clientForTelnet, String command) {
        write(command, clientForTelnet.getOut());
        return readUntil(clientForTelnet.getPrompt(), clientForTelnet.getIn());
    }
    public static void disconnect(TelnetClient tc) {
        try {
            tc.disconnect();
        } catch (IOException e) {
            LOGGER.error(e);
        }
    }
}
public class SSH {
private final String USER;
private final String PASSWORD;
private final Host HOST;
private final Port PORT;
  private final Port DEFAULT_PORT = new Port(22);
  public SSH(String user, String password, Host host, Port port) {
      this.USER = user;
      this.PASSWORD = password;
      this.HOST = host;
      this.PORT = port;
  }
  public SSH(String user, String password, Host host) {
      this.USER = user;
      this.PASSWORD = password;
      this.HOST = host;
      this.PORT = DEFAULT_PORT;
  }
  public String getUSER() {
      return USER;
  }
  public String getPASSWORD() {
      return PASSWORD;
  }
  public Host getHOST() {
      return HOST;
  }
  public Port getPORT() {
      return PORT;
  }
}
 
public class Telnet {
  private final Host HOST;
  private final Port PORT;
  private final Port DEFAULT_PORT = new Port(5000);
  public Telnet(Host host, Port port) {
      this.HOST = host;
      this.PORT = port;
  }
  public Telnet(Host host) {
      this.HOST = host;
      this.PORT = DEFAULT_PORT;
  }
  public Host getHOST() {
      return HOST;
  }
  public Port getPORT() {
      return PORT;
  }
}
 
public class ClientForTelnet {
  private final TelnetClient TC = new TelnetClient();
  private final String PROMT = ">";
  private final Telnet TELNET;
  private InputStream in;
  private PrintStream out;
  public ClientForTelnet(Telnet telnet) {
      this.TELNET = telnet;
  }
  public InputStream getIn() {
      return in;
  }
  public PrintStream getOut() {
      return out;
  }
  public Telnet getTelnet() {
      return TELNET;
  }
  public String getPrompt() {
      return PROMT;
  }
  public TelnetClient getTc() {
      return TC;
  }
  public void setIn(InputStream in) {
      this.in = in;
  }
  public void setOut(PrintStream out) {
      this.out = out;
  }
}
 
public class Host {
    private final static Logger LOGGER = LogManager.getLogger(Host.class);
    private String ip;
    public Host(String ip) {
        this.ip = ip;
    }
    public String getIp() {
        return ip;
    }
}