ユーザーが telnet で接続し、「xxx に接続」コマンドを送信して ssh サーバーに接続できるプロキシ アプリケーションを開発しました。ssh クライアントとして JSch を使用します。
JSch jsch = new JSch();
Session session = jsch.getSession(username, ip, 22);
Channel channel = session.openChannel("shell");
InputStream inp = channel.getInputStream();
OutputStream oup = channel.getOutputStream();
MyReader myReader = new MyReader(userOutputStream, inp);
new Thread(myReader).start();
MyWriterThread myWriter = new MyWriter(userInputStream, oup);
new Thread(myWriter).start();
次に、これら 2 つの新しいスレッドで入力と出力をそれぞれ処理します。しかし、同時スレッドが多すぎるためにユーザー数が増加すると、プロキシのパフォーマンスが急速に低下しました。そこで、java.nio.channels.Selector と SocketChannel を使用してスレッド量を減らしたいと考えています。しかし、java.nio.* をサポートする ssh クライアントが見つかりません (例: JSch、Apache sshd、sshtools など)。Java nioをサポートする他のsshクライアントはありますか? または、入出力ストリームを Selector と SocketChannel に接続できるメソッドはありますか?
どうもありがとう!