6

FTPS サーバー (SFTP ではない) に接続しようとしています。Linux システムから接続しているので、lftp、ftp-ssl、さらには php の ftp_ssl_connect を使用してみましたが、どれも機能しません。(上記の方法のすべてまたは少なくとも一部を使用して、他の FTPS サーバーに接続できました)。

私が持っている最も説明的なエラーは、11までのデバッグを使用したlftpからのものです。

$ ftp
lftp :~> open -u my-username ftps://server.net
パスワード:
lftp my-username@server.net:~> デバッグ 99999999999
lftp my-username@server.net:~> ls
FileCopy(0x717bf0) が INITIAL 状態に入る
FileCopy(0x717bf0) が状態 DO_COPY に入る
---- DNS キャッシュ ヒット
---- server.net (IP ADDRESS) ポート 990 への接続
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: DHE_RSA_AES_128_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: DHE_RSA_CAMELLIA_128_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: DHE_RSA_AES_256_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: DHE_RSA_CAMELLIA_256_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: DHE_RSA_3DES_EDE_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: DHE_DSS_AES_128_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: DHE_DSS_CAMELLIA_128_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: DHE_DSS_AES_256_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: DHE_DSS_CAMELLIA_256_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: DHE_DSS_3DES_EDE_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: DHE_DSS_ARCFOUR_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: DHE_PSK_SHA_AES_128_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: DHE_PSK_SHA_AES_256_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: DHE_PSK_SHA_3DES_EDE_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: DHE_PSK_SHA_ARCFOUR_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: SRP_SHA_RSA_AES_128_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: SRP_SHA_RSA_AES_256_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: SRP_SHA_RSA_3DES_EDE_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: SRP_SHA_DSS_AES_128_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: SRP_SHA_DSS_AES_256_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: SRP_SHA_DSS_3DES_EDE_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: RSA_AES_128_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: RSA_CAMELLIA_128_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: RSA_AES_256_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: RSA_CAMELLIA_256_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: RSA_3DES_EDE_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: RSA_ARCFOUR_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートを保持: RSA_ARCFOUR_MD5
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: PSK_SHA_AES_128_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: PSK_SHA_AES_256_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: PSK_SHA_3DES_EDE_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: PSK_SHA_ARCFOUR_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: SRP_SHA_AES_128_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: SRP_SHA_AES_256_CBC_SHA1
GNUTLS: HSK[acfbb0]: 暗号スイートの削除: SRP_SHA_3DES_EDE_CBC_SHA1
GNUTLS: EXT[acfbb0]: 送信拡張機能 CERT_TYPE
GNUTLS: HSK[acfbb0]: CLIENT HELLO が送信されました [88 バイト]
GNUTLS: REC[acfbb0]: 送信パケット [0] ハンドシェイク (22) の長さ: 88
GNUTLS: アサート: gnutls_cipher.c:205
GNUTLS: REC[acfbb0]: 送信されたパケット [1] ハンドシェイク (22) の長さ: 93
GNUTLS: アサート: gnutls_buffers.c:638
GNUTLS: アサート: gnutls_record.c:909
GNUTLS: アサート: gnutls_buffers.c:1152
GNUTLS: アサート: gnutls_handshake.c:1032
GNUTLS: アサート: gnutls_handshake.c:2331
**** gnutls_handshake: 予期しない長さの TLS パケットを受信しました。
---- 制御ソケットを閉じる
ls: 致命的なエラー: gnutls_handshake: 予期しない長さの TLS パケットを受信しました。

PHPを使用すると、次のようになります。

警告: ftp_login(): SSL/TLS ハンドシェイクが /home/user/ftp.php の 7 行目で失敗しました
警告: ftp_login(): SSL が有効で、7 行目の /home/user/ftp.php でネゴシエーションを開始します
ログインできませんか

6 行目:$connect = ftp_ssl_connect("server.net") or die("cannot connect");

7 行目:$result = ftp_login($connect,"my-username","my-password") or die("cannot login");

ftp-ssl の場合:

$ ftp-ssl -d -z デバッグ server.net
SSL_DEBUG_FLAG オン
server.net に接続しました。
220-セキュリティ通知
220-すべての活動が監視される可能性があります。システムの使用は、
220監視。法執行機関に情報が提供される場合があります。
ftp: setsockopt: ファイル記述子が正しくありません
名前 (server.net:user): my-username
---> 認証 SSL
234 SSL が有効になっているため、ネゴシエーションを開始します
0x68c190 に書き込む (102 バイト => 102 (66))
0000 - 80 64 01 03 01 00 4b 00-00 00 10 00 00 39 00 00 .d....K......9..
0010 - 38 00 00 35 00 00 16 00-00 13 00 00 0a 07 00 c0 8..5........
0020 - 00 00 33 00 00 32 00 00-2f 03 00 80 00 00 05 00 ..3..2../.......
0030 - 00 04 01 00 80 00 00 15-00 00 12 00 00 09 06 00 ......
0040 - 40 00 00 14 00 00 11 00-00 08 00 00 06 04 00 80 @.......
0050 - 00 00 03 02 00 80 e9 28-25 ed ea 2d e4 d2 f2 25 .......(%..-...%
0060 - 80 e1 2e f1 c3 71 .....q
0x68c190 から読み取る (7 バイト => -1 (FFFFFFFFFFFFFFFF))
ftp: SSL_connect エラー error:00000000:lib(0):func(0):reason(0)
: ピアによって接続がリセットされました

この投稿が長い場合は申し訳ありませんが、答えが見えないまま何日もグーグルで検索しています。私が見逃したデバッグ情報が誰かに役立つことを願っています。

4

2 に答える 2

1

サーバーが互換性のない、または無効な鍵交換アルゴリズムを使用しているようです。Wireshark を使用して、クライアントとサーバー間のパケットをキャッチしてみてください。おそらく、問題が明らかになるでしょう。また、いくつかの鍵交換アルゴリズムを有効/無効にすることもできます。

于 2010-08-24T09:17:49.910 に答える