2

我正在尝试通过最新的 phpseclib 版本打开 sftp 连接。

我可以通过 Filezilla 成功连接,在第一次连接尝试时我也被提示接受服务器指纹。

以下是生成的日志:

        define('NET_SSH2_LOGGING', 2);

        define('NET_SFTP_LOGGING', NET_SFTP_LOG_COMPLEX);

            $errorLog = $sftp->getLog();
            $sFtpErrorLog = $sftp->getSFTPLog();

            Mage::log(print_r($errorLog, true), null, "ssh2.log");
            Mage::log(print_r($sFtpErrorLog, true), null, "sftp.log");

它们都产生相同的输出:

<-
00000000  53:53:48:2d:32:2e:30:2d:52:65:62:65:78:53:53:48  SSH-2.0-RebexSSH
00000010  5f:31:2e:30:2e:32:2e:32:37:30:36:39:0d:0a        _1.0.2.27069..

->
00000000  53:53:48:2d:32:2e:30:2d:70:68:70:73:65:63:6c:69  SSH-2.0-phpsecli
00000010  62:5f:31:2e:30:20:28:6f:70:65:6e:73:73:6c:2c:20  b_1.0 (openssl,
00000020  62:63:6d:61:74:68:29:0d:0a                       bcmath)..

-> NET_SSH2_MSG_KEXINIT (since last: 0.1058, network: 0.0002s)
00000000  fc:6a:43:b8:2b:e7:ba:bf:e2:78:55:4c:38:3e:39:fd  .jC.+....xUL8>9.
00000010  00:00:00:7e:64:69:66:66:69:65:2d:68:65:6c:6c:6d  ...~diffie-hellm
00000020  61:6e:2d:67:72:6f:75:70:31:2d:73:68:61:31:2c:64  an-group1-sha1,d
00000030  69:66:66:69:65:2d:68:65:6c:6c:6d:61:6e:2d:67:72  iffie-hellman-gr
00000040  6f:75:70:31:34:2d:73:68:61:31:2c:64:69:66:66:69  oup14-sha1,diffi
00000050  65:2d:68:65:6c:6c:6d:61:6e:2d:67:72:6f:75:70:2d  e-hellman-group-
00000060  65:78:63:68:61:6e:67:65:2d:73:68:61:31:2c:64:69  exchange-sha1,di
00000070  66:66:69:65:2d:68:65:6c:6c:6d:61:6e:2d:67:72:6f  ffie-hellman-gro
00000080  75:70:2d:65:78:63:68:61:6e:67:65:2d:73:68:61:32  up-exchange-sha2
00000090  35:36:00:00:00:0f:73:73:68:2d:72:73:61:2c:73:73  56....ssh-rsa,ss
000000a0  68:2d:64:73:73:00:00:00:00:00:00:00:00:00:00:00  h-dss...........
000000b0  39:68:6d:61:63:2d:73:68:61:32:2d:32:35:36:2c:68  9hmac-sha2-256,h
000000c0  6d:61:63:2d:73:68:61:31:2d:39:36:2c:68:6d:61:63  mac-sha1-96,hmac
000000d0  2d:73:68:61:31:2c:68:6d:61:63:2d:6d:64:35:2d:39  -sha1,hmac-md5-9
000000e0  36:2c:68:6d:61:63:2d:6d:64:35:00:00:00:39:68:6d  6,hmac-md5...9hm
000000f0  61:63:2d:73:68:61:32:2d:32:35:36:2c:68:6d:61:63  ac-sha2-256,hmac
00000100  2d:73:68:61:31:2d:39:36:2c:68:6d:61:63:2d:73:68  -sha1-96,hmac-sh
00000110  61:31:2c:68:6d:61:63:2d:6d:64:35:2d:39:36:2c:68  a1,hmac-md5-96,h
00000120  6d:61:63:2d:6d:64:35:00:00:00:04:6e:6f:6e:65:00  mac-md5....none.
00000130  00:00:04:6e:6f:6e:65:00:00:00:00:00:00:00:00:00  ...none.........
00000140  00:00:00:00                                      ....

<- NET_SSH2_MSG_KEXINIT (since last: 0.0006, network: 0.0002s)
00000000  a0:67:43:5a:e0:d8:e7:0f:26:a1:87:68:58:8a:46:3f  .gCZ....&..hX.F?
00000010  00:00:00:7e:64:69:66:66:69:65:2d:68:65:6c:6c:6d  ...~diffie-hellm
00000020  61:6e:2d:67:72:6f:75:70:2d:65:78:63:68:61:6e:67  an-group-exchang
00000030  65:2d:73:68:61:32:35:36:2c:64:69:66:66:69:65:2d  e-sha256,diffie-
00000040  68:65:6c:6c:6d:61:6e:2d:67:72:6f:75:70:2d:65:78  hellman-group-ex
00000050  63:68:61:6e:67:65:2d:73:68:61:31:2c:64:69:66:66  change-sha1,diff
00000060  69:65:2d:68:65:6c:6c:6d:61:6e:2d:67:72:6f:75:70  ie-hellman-group
00000070  31:34:2d:73:68:61:31:2c:64:69:66:66:69:65:2d:68  14-sha1,diffie-h
00000080  65:6c:6c:6d:61:6e:2d:67:72:6f:75:70:31:2d:73:68  ellman-group1-sh
00000090  61:31:00:00:00:26:73:73:68:2d:72:73:61:2c:73:73  a1...&ssh-rsa,ss
000000a0  68:2d:72:73:61:2d:73:68:61:32:35:36:40:73:73:68  h-rsa-sha256@ssh
000000b0  2e:63:6f:6d:2c:73:73:68:2d:64:73:73:00:00:00:e9  .com,ssh-dss....
000000c0  61:65:73:32:35:36:2d:63:74:72:2c:61:65:73:31:39  aes256-ctr,aes19
000000d0  32:2d:63:74:72:2c:61:65:73:31:32:38:2d:63:74:72  2-ctr,aes128-ctr
000000e0  2c:33:64:65:73:2d:63:74:72:2c:74:77:6f:66:69:73  ,3des-ctr,twofis
000000f0  68:32:35:36:2d:63:74:72:2c:74:77:6f:66:69:73:68  h256-ctr,twofish
00000100  31:39:32:2d:63:74:72:2c:74:77:6f:66:69:73:68:31  192-ctr,twofish1
00000110  32:38:2d:63:74:72:2c:62:6c:6f:77:66:69:73:68:2d  28-ctr,blowfish-
00000120  63:74:72:2c:61:65:73:32:35:36:2d:63:62:63:2c:61  ctr,aes256-cbc,a
00000130  65:73:31:39:32:2d:63:62:63:2c:61:65:73:31:32:38  es192-cbc,aes128
00000140  2d:63:62:63:2c:33:64:65:73:2d:63:62:63:2c:74:77  -cbc,3des-cbc,tw
00000150  6f:66:69:73:68:32:35:36:2d:63:62:63:2c:74:77:6f  ofish256-cbc,two
00000160  66:69:73:68:31:39:32:2d:63:62:63:2c:74:77:6f:66  fish192-cbc,twof
00000170  69:73:68:31:32:38:2d:63:62:63:2c:74:77:6f:66:69  ish128-cbc,twofi
00000180  73:68:2d:63:62:63:2c:62:6c:6f:77:66:69:73:68:2d  sh-cbc,blowfish-
00000190  63:62:63:2c:61:72:63:66:6f:75:72:32:35:36:2c:61  cbc,arcfour256,a
000001a0  72:63:66:6f:75:72:31:32:38:00:00:00:e9:61:65:73  rcfour128....aes
000001b0  32:35:36:2d:63:74:72:2c:61:65:73:31:39:32:2d:63  256-ctr,aes192-c
000001c0  74:72:2c:61:65:73:31:32:38:2d:63:74:72:2c:33:64  tr,aes128-ctr,3d
000001d0  65:73:2d:63:74:72:2c:74:77:6f:66:69:73:68:32:35  es-ctr,twofish25
000001e0  36:2d:63:74:72:2c:74:77:6f:66:69:73:68:31:39:32  6-ctr,twofish192
000001f0  2d:63:74:72:2c:74:77:6f:66:69:73:68:31:32:38:2d  -ctr,twofish128-
00000200  63:74:72:2c:62:6c:6f:77:66:69:73:68:2d:63:74:72  ctr,blowfish-ctr
00000210  2c:61:65:73:32:35:36:2d:63:62:63:2c:61:65:73:31  ,aes256-cbc,aes1
00000220  39:32:2d:63:62:63:2c:61:65:73:31:32:38:2d:63:62  92-cbc,aes128-cb
00000230  63:2c:33:64:65:73:2d:63:62:63:2c:74:77:6f:66:69  c,3des-cbc,twofi
00000240  73:68:32:35:36:2d:63:62:63:2c:74:77:6f:66:69:73  sh256-cbc,twofis
00000250  68:31:39:32:2d:63:62:63:2c:74:77:6f:66:69:73:68  h192-cbc,twofish
00000260  31:32:38:2d:63:62:63:2c:74:77:6f:66:69:73:68:2d  128-cbc,twofish-
00000270  63:62:63:2c:62:6c:6f:77:66:69:73:68:2d:63:62:63  cbc,blowfish-cbc
00000280  2c:61:72:63:66:6f:75:72:32:35:36:2c:61:72:63:66  ,arcfour256,arcf
00000290  6f:75:72:31:32:38:00:00:00:2e:68:6d:61:63:2d:73  our128....hmac-s
000002a0  68:61:31:2c:68:6d:61:63:2d:6d:64:35:2c:68:6d:61  ha1,hmac-md5,hma
000002b0  63:2d:73:68:61:32:2d:32:35:36:2c:68:6d:61:63:2d  c-sha2-256,hmac-
000002c0  73:68:61:32:2d:35:31:32:00:00:00:2e:68:6d:61:63  sha2-512....hmac
000002d0  2d:73:68:61:31:2c:68:6d:61:63:2d:6d:64:35:2c:68  -sha1,hmac-md5,h
000002e0  6d:61:63:2d:73:68:61:32:2d:32:35:36:2c:68:6d:61  mac-sha2-256,hma
000002f0  63:2d:73:68:61:32:2d:35:31:32:00:00:00:04:6e:6f  c-sha2-512....no
00000300  6e:65:00:00:00:04:6e:6f:6e:65:00:00:00:00:00:00  ne....none......
00000310  00:00:00:00:00:00:00                             .......

但就是这样。在这些初始化消息之后它只是失败了。据我所见/理解,他们都使用密钥交换算法,每一端都应该理解,比如diffie-hellman-group-exchange-256

那么问题是什么,为什么它不发送NET_SSH2_MSG_KEXDH_INIT消息?

4

1 回答 1

1

汉内斯·盖斯特(Hannes Geist)正在赚钱。因为您使用的是 phpseclib 1.0,所以您需要设置 include_path。您可以在 php.ini、apache.conf 或像这样在 PHP 中这样做:

set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

我认为这是问题的原因:phpseclib 发出的 NET_SSH2_MSG_KEXDH_INIT 没有任何对称密钥算法。phpseclib 1.0 通过查看它可以加载哪些对称密钥算法来生成支持的对称密钥算法列表。在这种情况下,它无法加载其中任何一个,因此不会发送任何内容。服务器看到客户端不支持它支持的任何算法,因此永远不会建立连接。

于 2017-10-25T04:34:40.643 回答