SFTPサーバをバージョンアップしたところ、FTPアダプタ使用時に下記エラーが発生して接続が失敗するようになりました。
原因と対応策を教えてください。
------
java.io.IOException: The socket is EOF
------
弊社過去事例では、SFTPサーバ側のバージョンアップにより、DataSpider 側の鍵交換アルゴリズムに対応しなくなったため、本エラーが発生しておりました。
以下は事象発生時に SFTP サーバとの通信状況の詳細を出力したサーバログの抜粋です。
------
01/27 14:16:37|DEBUG|TransportProtocolCommon|Returning diffie-hellman-group-exchange-sha256
01/27 14:16:37|DEBUG|TransportProtocolCommon|Key exchange algorithm: diffie-hellman-group-exchange-sha256
01/27 14:16:37|INFO|DhGroupExchangeSha256|Starting client side key exchange.
01/27 14:16:37|DEBUG|TransportProtocolCommon|Name=SSH_MSG_KEX_DH_GEX_REQUEST_OLD,MessageId=30,DH_PREFERRED_GROUP_SIZE=1024
01/27 14:16:37|DEBUG|TransportProtocolOutputStream|Sent message. Seq no=1, msg=30
01/27 14:16:37|DEBUG|TransportProtocolCommon|Received registered message: Name=SSH_MSG_UNIMPLEMENTED,MessageId=3
01/27 14:16:37|DEBUG|TransportProtocolCommon|The message with sequence no 1 was reported as unimplemented by the remote end.
01/27 14:18:37|WARN|TransportProtocolCommon|The Transport Protocol thread failed: The socket is EOF
------
上記は「diffie-hellman-group-exchange-sha256」でやり取りを行う際に、SFTPクライアント側(DataSpider)から送信した「SSH_MSG_KEX_DH_GEX_REQUEST_OLD」が、SFTPサーバ側では対応していないため、SFTPサーバ側から「SSH_MSG_UNIMPLEMENTED」が返却されて接続が失敗しています。
■対応策
ご利用の DataSpider へサービスパック適用やバージョンアップを行うことで、FTPアダプタで使用しているライブラリ「edtFTPj/PRO」をバージョンアップしてください。
過去事例では、DataSpider 4.2 SP4 のサービスパック適用によって、ライブラリが Version: 5.3.2 にバージョンアップしたことで、「SSH_MSG_KEX_DH_GEX_REQUEST_OLD」ではなく「SSH_MSG_KEX_DH_GEX_REQUEST」で鍵交換を行うようになったため、SFTPサーバと接続が可能となったことを確認しています。
なお、FTPアダプタが使用している「edtFTPj/PRO」のバージョンは、次の「■補足」でご案内している方法で、ログに出力可能です。
■補足
FTPアダプタでは、プロパティファイルにて設定を行うことで、SFTP で利用可能な暗号スイートや、SFTPサーバとの通信状況を、サーバログや edtftp.log に出力することが可能です。
詳細は下記FAQをご参照ください。
FAQ No : 32723
【DataSpider Servista】FTPアダプタのSFTPで利用可能な暗号スイートについて教えてください
FAQ No : 24226
【DataSpider Servista】 FTP アダプタを使用していますが、FTP サーバとの通信に失敗してエラーが発生しています