社内で使用するための Java Webstart アプリケーションを作成しています。JSch を使用して、データセンターの 1 つのサーバーに接続し、ポート転送を許可します。ユーザーがアプリケーションを実行するたびにこのメッセージを表示したくありません。
http://img33.imageshack.us/img33/5103/permissionsr.jpg
このメッセージを抑制する方法はありますか?
社内で使用するための Java Webstart アプリケーションを作成しています。JSch を使用して、データセンターの 1 つのサーバーに接続し、ポート転送を許可します。ユーザーがアプリケーションを実行するたびにこのメッセージを表示したくありません。
http://img33.imageshack.us/img33/5103/permissionsr.jpg
このメッセージを抑制する方法はありますか?
プログラムの外部からの接続を実際に転送する必要がありますか、それとも転送されたポートを使用しているのはプログラム自体だけですか?
前者の場合、できることはあまりありません。アクセス許可を別の方法で構成しようとする場合もありますが、そうすると、それらのアクセス許可について質問されることになります。または、クライアントの JRE にアクセス許可を設定することもできますが、それがどのように行われるかはわかりません。
Webstart プログラム自体が SSH 接続を介して内部サーバーにアクセスしようとしていて、現在 JSch セッションがリッスンしているローカル ポートへのソケットを開いている場合は、次のようにするとよりうまくいく可能性があります。
Socket を開く代わりに、direct-tcp チャネルを開き、その入力ストリームと出力ストリームを使用します。これで、ローカル ポートを開く必要がなくなり、セキュリティに関する質問もなくなりました。
ChannelDirectTCPIP channel = (ChannelDirectTCPIP)gateway.openChannel("direct-tcpip");
channel.setHost(host);
channel.setPort(port);
// important: first create the streams, then connect.
InputStream iStream = channel.getInputStream();
OutputStream oStream = channel.getOutputStream();
channel.connect();
// now write to oStream and read from iStream
これを使用して、JSch セッションを別の JSch セッションにトンネリングしました。私の ProxySSH の例 を参照してください。