0

我正在尝试使用 gaufrette 和 phpseclib 在服务器 sftp 之间进行简单的复制文件。本地适配器服务器发送超过 1GB 没有问题。如果我尝试发送远程总是停止在 1GB 日志看起来像

    00000fe0  00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00  ................
00000ff0  00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00  ................
00001000  00:00:00:00:00:00:00:00                          ........

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000  00:00:01:00:00:00:00:1c:00:00:00:18:65:00:00:00  ............e...
00000010  01:00:00:00:00:00:00:00:07:53:75:63:63:65:73:73  .........Success
00000020  00:00:00:00                                      ....

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000  00:00:01:00:00:00:00:1c:00:00:00:18:65:00:00:00  ............e...
00000010  01:00:00:00:00:00:00:00:07:53:75:63:63:65:73:73  .........Success
00000020  00:00:00:00                                      ....

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000  00:00:01:00:00:00:00:1c:00:00:00:18:65:00:00:00  ............e...
00000010  01:00:00:00:00:00:00:00:07:53:75:63:63:65:73:73  .........Success
00000020  00:00:00:00                                      ....

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000  00:00:01:00:00:00:00:1c:00:00:00:18:65:00:00:00  ............e...
00000010  01:00:00:00:00:00:00:00:07:53:75:63:63:65:73:73  .........Success
00000020  00:00:00:00                                      ....

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000  00:00:01:00:00:00:00:1c:00:00:00:18:65:00:00:00  ............e...
00000010  01:00:00:00:00:00:00:00:07:53:75:63:63:65:73:73  .........Success
00000020  00:00:00:00                                      ....

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000  00:00:01:00:00:00:00:1c:00:00:00:18:65:00:00:00  ............e...
00000010  01:00:00:00:00:00:00:00:07:53:75:63:63:65:73:73  .........Success
00000020  00:00:00:00                                      ....

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000  00:00:01:00:00:00:00:1c:00:00:00:18:65:00:00:00  ............e...
00000010  01:00:00:00:00:00:00:00:07:53:75:63:63:65:73:73  .........Success
00000020  00:00:00:00                                      ....

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0009, network: 0.0008s)
00000000  00:00:01:00:00:00:00:1c:00:00:00:18:65:00:00:00  ............e...
00000010  01:00:00:00:00:00:00:00:07:53:75:63:63:65:73:73  .........Success
00000020  00:00:00:00                                      ....

<- NET_SSH2_MSG_KEXINIT (since last: 0.0001, network: 0s)
00000000  d3:0d:5e:69:3d:0d:7f:e8:13:a6:fd:85:f6:05:3c:02  ..^i=...........
00000010  00:00:00:d4:63:75:72:76:65:32:35:35:31:39:2d:73  ....curve25519-s
00000020  68:61:32:35:36:40:6c:69:62:73:73:68:2e:6f:72:67  ha256@libssh.org
00000030  2c:65:63:64:68:2d:73:68:61:32:2d:6e:69:73:74:70  ,ecdh-sha2-nistp
00000040  32:35:36:2c:65:63:64:68:2d:73:68:61:32:2d:6e:69  256,ecdh-sha2-ni
00000050  73:74:70:33:38:34:2c:65:63:64:68:2d:73:68:61:32  stp384,ecdh-sha2
00000060  2d:6e:69:73:74:70:35:32:31:2c:64:69:66:66:69:65  -nistp521,diffie
00000070  2d:68:65:6c:6c:6d:61:6e:2d:67:72:6f:75:70:2d:65  -hellman-group-e
00000080  78:63:68:61:6e:67:65:2d:73:68:61:32:35:36:2c:64  xchange-sha256,d
00000090  69:66:66:69:65:2d:68:65:6c:6c:6d:61:6e:2d:67:72  iffie-hellman-gr
000000a0  6f:75:70:2d:65:78:63:68:61:6e:67:65:2d:73:68:61  oup-exchange-sha
000000b0  31:2c:64:69:66:66:69:65:2d:68:65:6c:6c:6d:61:6e  1,diffie-hellman
000000c0  2d:67:72:6f:75:70:31:34:2d:73:68:61:31:2c:64:69  -group14-sha1,di
000000d0  66:66:69:65:2d:68:65:6c:6c:6d:61:6e:2d:67:72:6f  ffie-hellman-gro
000000e0  75:70:31:2d:73:68:61:31:00:00:00:27:73:73:68:2d  up1-sha1...'ssh-
000000f0  72:73:61:2c:65:63:64:73:61:2d:73:68:61:32:2d:6e  rsa,ecdsa-sha2-n
00000100  69:73:74:70:32:35:36:2c:73:73:68:2d:65:64:32:35  istp256,ssh-ed25
00000110  35:31:39:00:00:00:e9:61:65:73:31:32:38:2d:63:74  519....aes128-ct
00000120  72:2c:61:65:73:31:39:32:2d:63:74:72:2c:61:65:73  r,aes192-ctr,aes
00000130  32:35:36:2d:63:74:72:2c:61:72:63:66:6f:75:72:32  256-ctr,arcfour2
00000140  35:36:2c:61:72:63:66:6f:75:72:31:32:38:2c:61:65  56,arcfour128,ae
00000150  73:31:32:38:2d:67:63:6d:40:6f:70:65:6e:73:73:68  s128-gcm@openssh
00000160  2e:63:6f:6d:2c:61:65:73:32:35:36:2d:67:63:6d:40  .com,aes256-gcm@
00000170  6f:70:65:6e:73:73:68:2e:63:6f:6d:2c:63:68:61:63  openssh.com,chac
00000180  68:61:32:30:2d:70:6f:6c:79:31:33:30:35:40:6f:70  ha20-poly1305@op
00000190  65:6e:73:73:68:2e:63:6f:6d:2c:61:65:73:31:32:38  enssh.com,aes128
000001a0  2d:63:62:63:2c:33:64:65:73:2d:63:62:63:2c:62:6c  -cbc,3des-cbc,bl
000001b0  6f:77:66:69:73:68:2d:63:62:63:2c:63:61:73:74:31  owfish-cbc,cast1
000001c0  32:38:2d:63:62:63:2c:61:65:73:31:39:32:2d:63:62  28-cbc,aes192-cb
000001d0  63:2c:61:65:73:32:35:36:2d:63:62:63:2c:61:72:63  c,aes256-cbc,arc
000001e0  66:6f:75:72:2c:72:69:6a:6e:64:61:65:6c:2d:63:62  four,rijndael-cb
000001f0  63:40:6c:79:73:61:74:6f:72:2e:6c:69:75:2e:73:65  c@lysator.liu.se
00000200  00:00:00:e9:61:65:73:31:32:38:2d:63:74:72:2c:61  ....aes128-ctr,a
00000210  65:73:31:39:32:2d:63:74:72:2c:61:65:73:32:35:36  es192-ctr,aes256
00000220  2d:63:74:72:2c:61:72:63:66:6f:75:72:32:35:36:2c  -ctr,arcfour256,
00000230  61:72:63:66:6f:75:72:31:32:38:2c:61:65:73:31:32  arcfour128,aes12
00000240  38:2d:67:63:6d:40:6f:70:65:6e:73:73:68:2e:63:6f  8-gcm@openssh.co
00000250  6d:2c:61:65:73:32:35:36:2d:67:63:6d:40:6f:70:65  m,aes256-gcm@ope
00000260  6e:73:73:68:2e:63:6f:6d:2c:63:68:61:63:68:61:32  nssh.com,chacha2
00000270  30:2d:70:6f:6c:79:31:33:30:35:40:6f:70:65:6e:73  0-poly1305@opens
00000280  73:68:2e:63:6f:6d:2c:61:65:73:31:32:38:2d:63:62  sh.com,aes128-cb
00000290  63:2c:33:64:65:73:2d:63:62:63:2c:62:6c:6f:77:66  c,3des-cbc,blowf
000002a0  69:73:68:2d:63:62:63:2c:63:61:73:74:31:32:38:2d  ish-cbc,cast128-
000002b0  63:62:63:2c:61:65:73:31:39:32:2d:63:62:63:2c:61  cbc,aes192-cbc,a
000002c0  65:73:32:35:36:2d:63:62:63:2c:61:72:63:66:6f:75  es256-cbc,arcfou
000002d0  72:2c:72:69:6a:6e:64:61:65:6c:2d:63:62:63:40:6c  r,rijndael-cbc@l
000002e0  79:73:61:74:6f:72:2e:6c:69:75:2e:73:65:00:00:01  ysator.liu.se...
000002f0  92:68:6d:61:63:2d:6d:64:35:2d:65:74:6d:40:6f:70  .hmac-md5-etm@op
00000300  65:6e:73:73:68:2e:63:6f:6d:2c:68:6d:61:63:2d:73  enssh.com,hmac-s
00000310  68:61:31:2d:65:74:6d:40:6f:70:65:6e:73:73:68:2e  ha1-etm@openssh.
00000320  63:6f:6d:2c:75:6d:61:63:2d:36:34:2d:65:74:6d:40  com,umac-64-etm@
00000330  6f:70:65:6e:73:73:68:2e:63:6f:6d:2c:75:6d:61:63  openssh.com,umac
00000340  2d:31:32:38:2d:65:74:6d:40:6f:70:65:6e:73:73:68  -128-etm@openssh
00000350  2e:63:6f:6d:2c:68:6d:61:63:2d:73:68:61:32:2d:32  .com,hmac-sha2-2
00000360  35:36:2d:65:74:6d:40:6f:70:65:6e:73:73:68:2e:63  56-etm@openssh.c
00000370  6f:6d:2c:68:6d:61:63:2d:73:68:61:32:2d:35:31:32  om,hmac-sha2-512
00000380  2d:65:74:6d:40:6f:70:65:6e:73:73:68:2e:63:6f:6d  -etm@openssh.com
00000390  2c:68:6d:61:63:2d:72:69:70:65:6d:64:31:36:30:2d  ,hmac-ripemd160-
000003a0  65:74:6d:40:6f:70:65:6e:73:73:68:2e:63:6f:6d:2c  etm@openssh.com,
000003b0  68:6d:61:63:2d:73:68:61:31:2d:39:36:2d:65:74:6d  hmac-sha1-96-etm
000003c0  40:6f:70:65:6e:73:73:68:2e:63:6f:6d:2c:68:6d:61  @openssh.com,hma
000003d0  63:2d:6d:64:35:2d:39:36:2d:65:74:6d:40:6f:70:65  c-md5-96-etm@ope
000003e0  6e:73:73:68:2e:63:6f:6d:2c:68:6d:61:63:2d:6d:64  nssh.com,hmac-md
000003f0  35:2c:68:6d:61:63:2d:73:68:61:31:2c:75:6d:61:63  5,hmac-sha1,umac
00000400  2d:36:34:40:6f:70:65:6e:73:73:68:2e:63:6f:6d:2c  -64@openssh.com,
00000410  75:6d:61:63:2d:31:32:38:40:6f:70:65:6e:73:73:68  umac-128@openssh
00000420  2e:63:6f:6d:2c:68:6d:61:63:2d:73:68:61:32:2d:32  .com,hmac-sha2-2
00000430  35:36:2c:68:6d:61:63:2d:73:68:61:32:2d:35:31:32  56,hmac-sha2-512
00000440  2c:68:6d:61:63:2d:72:69:70:65:6d:64:31:36:30:2c  ,hmac-ripemd160,
00000450  68:6d:61:63:2d:72:69:70:65:6d:64:31:36:30:40:6f  hmac-ripemd160@o
00000460  70:65:6e:73:73:68:2e:63:6f:6d:2c:68:6d:61:63:2d  penssh.com,hmac-
00000470  73:68:61:31:2d:39:36:2c:68:6d:61:63:2d:6d:64:35  sha1-96,hmac-md5
00000480  2d:39:36:00:00:01:92:68:6d:61:63:2d:6d:64:35:2d  -96....hmac-md5-
00000490  65:74:6d:40:6f:70:65:6e:73:73:68:2e:63:6f:6d:2c  etm@openssh.com,
000004a0  68:6d:61:63:2d:73:68:61:31:2d:65:74:6d:40:6f:70  hmac-sha1-etm@op
000004b0  65:6e:73:73:68:2e:63:6f:6d:2c:75:6d:61:63:2d:36  enssh.com,umac-6
000004c0  34:2d:65:74:6d:40:6f:70:65:6e:73:73:68:2e:63:6f  4-etm@openssh.co
000004d0  6d:2c:75:6d:61:63:2d:31:32:38:2d:65:74:6d:40:6f  m,umac-128-etm@o
000004e0  70:65:6e:73:73:68:2e:63:6f:6d:2c:68:6d:61:63:2d  penssh.com,hmac-
000004f0  73:68:61:32:2d:32:35:36:2d:65:74:6d:40:6f:70:65  sha2-256-etm@ope
00000500  6e:73:73:68:2e:63:6f:6d:2c:68:6d:61:63:2d:73:68  nssh.com,hmac-sh
00000510  61:32:2d:35:31:32:2d:65:74:6d:40:6f:70:65:6e:73  a2-512-etm@opens
00000520  73:68:2e:63:6f:6d:2c:68:6d:61:63:2d:72:69:70:65  sh.com,hmac-ripe
00000530  6d:64:31:36:30:2d:65:74:6d:40:6f:70:65:6e:73:73  md160-etm@openss
00000540  68:2e:63:6f:6d:2c:68:6d:61:63:2d:73:68:61:31:2d  h.com,hmac-sha1-
00000550  39:36:2d:65:74:6d:40:6f:70:65:6e:73:73:68:2e:63  96-etm@openssh.c
00000560  6f:6d:2c:68:6d:61:63:2d:6d:64:35:2d:39:36:2d:65  om,hmac-md5-96-e
00000570  74:6d:40:6f:70:65:6e:73:73:68:2e:63:6f:6d:2c:68  tm@openssh.com,h
00000580  6d:61:63:2d:6d:64:35:2c:68:6d:61:63:2d:73:68:61  mac-md5,hmac-sha
00000590  31:2c:75:6d:61:63:2d:36:34:40:6f:70:65:6e:73:73  1,umac-64@openss
000005a0  68:2e:63:6f:6d:2c:75:6d:61:63:2d:31:32:38:40:6f  h.com,umac-128@o
000005b0  70:65:6e:73:73:68:2e:63:6f:6d:2c:68:6d:61:63:2d  penssh.com,hmac-
000005c0  73:68:61:32:2d:32:35:36:2c:68:6d:61:63:2d:73:68  sha2-256,hmac-sh
000005d0  61:32:2d:35:31:32:2c:68:6d:61:63:2d:72:69:70:65  a2-512,hmac-ripe
000005e0  6d:64:31:36:30:2c:68:6d:61:63:2d:72:69:70:65:6d  md160,hmac-ripem
000005f0  64:31:36:30:40:6f:70:65:6e:73:73:68:2e:63:6f:6d  d160@openssh.com
00000600  2c:68:6d:61:63:2d:73:68:61:31:2d:39:36:2c:68:6d  ,hmac-sha1-96,hm
00000610  61:63:2d:6d:64:35:2d:39:36:00:00:00:15:6e:6f:6e  ac-md5-96....non
00000620  65:2c:7a:6c:69:62:40:6f:70:65:6e:73:73:68:2e:63  e,zlib@openssh.c
00000630  6f:6d:00:00:00:15:6e:6f:6e:65:2c:7a:6c:69:62:40  om....none,zlib@
00000640  6f:70:65:6e:73:73:68:2e:63:6f:6d:00:00:00:00:00  openssh.com.....
00000650  00:00:00:00:00:00:00:00                          ........

-> NET_SSH2_MSG_KEXINIT (since last: 0.0001, network: 0s)
00000000  e0:dc:b7:cf:3a:4a:e8:be:96:1e:ec:59:03:39:8e:8e  ....:J.....Y.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:e9:61:72:63:66:6f:75:72  h-dss....arcfour
000000b0  32:35:36:2c:61:72:63:66:6f:75:72:31:32:38:2c:61  256,arcfour128,a
000000c0  65:73:31:32:38:2d:63:74:72:2c:61:65:73:31:39:32  es128-ctr,aes192
000000d0  2d:63:74:72:2c:61:65:73:32:35:36:2d:63:74:72:2c  -ctr,aes256-ctr,
000000e0  74:77:6f:66:69:73:68:31:32:38:2d:63:74:72:2c:74  twofish128-ctr,t
000000f0  77:6f:66:69:73:68:31:39:32:2d:63:74:72:2c:74:77  wofish192-ctr,tw
00000100  6f:66:69:73:68:32:35:36:2d:63:74:72:2c:61:65:73  ofish256-ctr,aes
00000110  31:32:38:2d:63:62:63:2c:61:65:73:31:39:32:2d:63  128-cbc,aes192-c
00000120  62:63:2c:61:65:73:32:35:36:2d:63:62:63:2c:74:77  bc,aes256-cbc,tw
00000130  6f:66:69:73:68:31:32:38:2d:63:62:63:2c:74:77:6f  ofish128-cbc,two
00000140  66:69:73:68:31:39:32:2d:63:62:63:2c:74:77:6f:66  fish192-cbc,twof
00000150  69:73:68:32:35:36:2d:63:62:63:2c:74:77:6f:66:69  ish256-cbc,twofi
00000160  73:68:2d:63:62:63:2c:62:6c:6f:77:66:69:73:68:2d  sh-cbc,blowfish-
00000170  63:74:72:2c:62:6c:6f:77:66:69:73:68:2d:63:62:63  ctr,blowfish-cbc
00000180  2c:33:64:65:73:2d:63:74:72:2c:33:64:65:73:2d:63  ,3des-ctr,3des-c
00000190  62:63:00:00:00:e9:61:72:63:66:6f:75:72:32:35:36  bc....arcfour256
000001a0  2c:61:72:63:66:6f:75:72:31:32:38:2c:61:65:73:31  ,arcfour128,aes1
000001b0  32:38:2d:63:74:72:2c:61:65:73:31:39:32:2d:63:74  28-ctr,aes192-ct
000001c0  72:2c:61:65:73:32:35:36:2d:63:74:72:2c:74:77:6f  r,aes256-ctr,two
000001d0  66:69:73:68:31:32:38:2d:63:74:72:2c:74:77:6f:66  fish128-ctr,twof
000001e0  69:73:68:31:39:32:2d:63:74:72:2c:74:77:6f:66:69  ish192-ctr,twofi
000001f0  73:68:32:35:36:2d:63:74:72:2c:61:65:73:31:32:38  sh256-ctr,aes128
00000200  2d:63:62:63:2c:61:65:73:31:39:32:2d:63:62:63:2c  -cbc,aes192-cbc,
00000210  61:65:73:32:35:36:2d:63:62:63:2c:74:77:6f:66:69  aes256-cbc,twofi
00000220  73:68:31:32:38:2d:63:62:63:2c:74:77:6f:66:69:73  sh128-cbc,twofis
00000230  68:31:39:32:2d:63:62:63:2c:74:77:6f:66:69:73:68  h192-cbc,twofish
00000240  32:35:36:2d:63:62:63:2c:74:77:6f:66:69:73:68:2d  256-cbc,twofish-
00000250  63:62:63:2c:62:6c:6f:77:66:69:73:68:2d:63:74:72  cbc,blowfish-ctr
00000260  2c:62:6c:6f:77:66:69:73:68:2d:63:62:63:2c:33:64  ,blowfish-cbc,3d
00000270  65:73:2d:63:74:72:2c:33:64:65:73:2d:63:62:63:00  es-ctr,3des-cbc.
00000280  00:00:39:68:6d:61:63:2d:73:68:61:32:2d:32:35:36  ..9hmac-sha2-256
00000290  2c:68:6d:61:63:2d:73:68:61:31:2d:39:36:2c:68:6d  ,hmac-sha1-96,hm
000002a0  61:63:2d:73:68:61:31:2c:68:6d:61:63:2d:6d:64:35  ac-sha1,hmac-md5
000002b0  2d:39:36:2c:68:6d:61:63:2d:6d:64:35:00:00:00:39  -96,hmac-md5...9
000002c0  68:6d:61:63:2d:73:68:61:32:2d:32:35:36:2c:68:6d  hmac-sha2-256,hm
000002d0  61:63:2d:73:68:61:31:2d:39:36:2c:68:6d:61:63:2d  ac-sha1-96,hmac-
000002e0  73:68:61:31:2c:68:6d:61:63:2d:6d:64:35:2d:39:36  sha1,hmac-md5-96
000002f0  2c:68:6d:61:63:2d:6d:64:35:00:00:00:04:6e:6f:6e  ,hmac-md5....non
00000300  65:00:00:00:04:6e:6f:6e:65:00:00:00:00:00:00:00  e....none.......
00000310  00:00:00:00:00:00                                ......

我已经测试过像 filezilla sftp 这样的连接,发送 ober 1GB 没有问题,知道吗?Gaufrette 看起来好像没有很多选择,也许是 phpseclib?

其次,虽然它可能是 SFTP 服务器问题,但如果是,我认为应该是通过 filezilla 发送文件的问题。

4

2 回答 2

1

简短的回答

这应该在最新的 git 版本的 phpseclib 中通过这个提交修复:

https://github.com/phpseclib/phpseclib/commit/b50dde76f5683367e64e9f5e2936412d3168dad3

长答案

它在密钥重新交换时失败了。引用RFC 4253 § 9

建议在传输每 GB 数据后或每连接一小时后更改密钥,以先到者为准。然而,由于重新交换是一种公钥操作,它需要相当多的处理能力,不应该过于频繁地执行。

我能够使用以下 Vagrantfile 重现该问题(并验证修复):

Vagrant.configure("2") do |config|
    config.vm.box = "laravel/homestead"
    config.vm.provision "shell", inline: <<-SHELL
        printf "\n\nRekeyLimit 1K" >> /etc/ssh/sshd_config
        service ssh restart
    SHELL
end

这个拉取请求似乎已经引入了这个问题(在 2.0.6 和 2.0.7 版本之间合并):

https://github.com/phpseclib/phpseclib/pull/1162

理想情况下,将为此存在单元测试,但 phpseclib 可能需要使用 Docker 进行单元测试,目前还没有。

于 2017-11-12T05:32:01.517 回答
0

服务器站点出现问题。我们在其他账户上测试过,没有问题。重新启动服务 sshd 并更新修复问题。在我设置的所有日志中都没有错误:/。管理员说可能是包中有一些损坏,sftp 在 1GB 时停止了服务。更奇怪的是,如果我们通过filezilla发送没有问题。

于 2017-11-14T10:56:07.533 回答