クライアント/サーバー通信にRMIを使用するJavaアプリケーションがあります。 この通信を保護するため、トラフィックはssh接続を通じてトンネリングされます。Java RMIソケット接続でのEOFメッセージの防止
数秒後に接続が自動的に閉じられることを除いて、すべてうまくいきます。
私は真の生きているプロパティを維持しています
- SSHD接続
- SSHクライアント接続
- ServerSocketをサーバー側
- ClientSocketクライアント側
共通接続ルーチンレジスタ(ポート4000)に接続し、オブジェクト(ポート4005)上のメソッドを呼び出すと、フォールドが出力されますログ起因:
INFO org.apache.sshd.server.session.ServerSession - Authentication succeeded
INFO org.apache.sshd.server.session.ServerSession - Received SSH_MSG_CHANNEL_OPEN direct-tcpip
INFO org.apache.sshd.server.channel.ChannelDirectTcpip - Receiving request for direct tcpip: hostToConnect=ThinkPad, portToConnect=4000, originatorIpAddress=127.0.0.1, originatorPort=64539
INFO org.apache.sshd.server.session.ServerSession - Received SSH_MSG_CHANNEL_OPEN direct-tcpip
INFO org.apache.sshd.server.channel.ChannelDirectTcpip - Receiving request for direct tcpip: hostToConnect=ThinkPad, portToConnect=4005, originatorIpAddress=127.0.0.1, originatorPort=64540
INFO org.apache.sshd.server.channel.ChannelDirectTcpip - Received SSH_MSG_CHANNEL_EOF on channel 1
INFO org.apache.sshd.server.channel.ChannelDirectTcpip - Send SSH_MSG_CHANNEL_CLOSE on channel 1
INFO org.apache.sshd.server.channel.ChannelDirectTcpip - Received SSH_MSG_CHANNEL_CLOSE on channel 1
INFO org.apache.sshd.server.channel.ChannelDirectTcpip - Closing channel 1 immediately
INFO org.apache.sshd.server.channel.ChannelDirectTcpip - Closing channel 1 immediately
INFO org.apache.sshd.server.channel.ChannelDirectTcpip - Send SSH_MSG_CHANNEL_EOF on channel 1
INFO org.apache.sshd.server.session.ServerSession - Closing session
INFO org.apache.sshd.server.channel.ChannelDirectTcpip - Closing channel 0 immediately
INFO org.apache.sshd.server.channel.ChannelDirectTcpip - Closing channel 0 immediately
INFO org.apache.sshd.server.channel.ChannelDirectTcpip - Send SSH_MSG_CHANNEL_EOF on channel 0
**チャネル1上SSH_MSG_CHANNEL_EOFを受信ラインは、オブジェクト上に呼び出されたメソッドは、EOFメッセージを生成したことを示唆しています。
- インターセプトまたはEOFメッセージ(ただし、どこで、どのように?)
- は、サーバー側のSessionFactoryを設定してみ防ぐ:これは、その後...私は考えることができる
可能な解決策を閉じるためにセッションを引き起こし(誤っていると感じる)
[このサイト](http://www.networkdictionary.com/rfc/rfc4254.php?page=0%2C2)* EOF *はこの接続を終了させてはなりません。 – srkavin
また、そのサイトSSH_MSG_CHANNEL_CLOSEが確かにそれを閉じて、それが送信されているとしても。 – EJP
サーバーがEOFメッセージを受信し、CLOSEメッセージで応答した後、サーバーがEOF自体を送信するように見えます。私は最初に受信したEOFが、クライアント側のチャネルを閉じた後に送信され、これがどのように防止できるのか疑問に思います。 –