2014-10-11 3 views
0

대부분의 경우에 잘 작동하는 네트워크 스위치에 SSH를 통해 명령을 보내려면 PHPSecLib를 사용하고 있습니다. 나는 다른 브랜드를 지원하기 위해 몇 가지 수정을해야했지만, write()를 통해 명령을 보내는 것이 분할되는 결과를 초래하는 것으로 보입니다.PHPSecLib 분할 명령

나는 이런 것을 본 적이 없으며, 나는 그것을 일으키는 원인이 무엇인지에 관해서는 잘 모르겠습니다. PHPSecLib/SSH에 커맨드 라인 문자열을 특정 길이로 강제하는 것이 있습니까?

명령 줄 출력 :

configure Entering configuration mode 
{master:0}[edit] 
[email protected]# set policy-options prefix-list ddosHost 183.24.48.7 255. 
[email protected]# ...ix-list ddosHost 183.24.48.7 255.2 55.255.255^syntax error. 
{master:0}[edit] 
[email protected]# commit configuration check succeeds commit complete 
{master:0}[edit] 
[email protected]# exit Exiting configuration mode 
{master:0} 
[email protected]> 

기능 :

public function write_msg($msg) 
{ 
    for ($i = 0; $i < strlen($msg); $i++) 
    { 
     $this->conn->write($msg[$i]); 
    } 
} 

public function create_nullroute($ip, $netmask = "255.255.255.255") 
{ 

    $this->write_msg("configure\n"); 
    $this->write_msg("set policy-options prefix-list ddosHost " . $ip . " " . $netmask . "\n"); 
    $this->write_msg("commit\n"); 

    // Escape the config mode 
    $this->conn->write("exit\n"); 

    echo "</br><pre>" . $this->conn->getLog() . "</pre>"; 

    echo $this->conn->read($this->_bashshell); 
} 

PHPSecLib 로그 :

-> NET_SSH2_MSG_NEWKEYS (since last: 0.005, network: 0s) 


<- NET_SSH2_MSG_NEWKEYS (since last: 0, network: 0s) 


-> NET_SSH2_MSG_SERVICE_REQUEST (since last: 0.0028, network: 0s) 
00000000 00:00:00:0c:73:73:68:2d:75:73:65:72:61:75:74:68 ....ssh-userauth 

<- NET_SSH2_MSG_SERVICE_ACCEPT (since last: 0.5057, network: 0.5056s) 
00000000 00:00:00:0c:73:73:68:2d:75:73:65:72:61:75:74:68 ....ssh-userauth 

-> NET_SSH2_MSG_USERAUTH_REQUEST (since last: 0.0001, network: 0s) 
00000000 00:00:00:08:75:73:65:72:6e:61:6d:65:00:00:00:0e ....username.... 
00000010 73:73:68:2d:63:6f:6e:6e:65:63:74:69:6f:6e:00:00 ssh-connection.. 
00000020 00:08:70:61:73:73:77:6f:72:64:00:00:00:00:08:70 ..password.....p 
00000030 61:73:73:77:6f:72:64        assword 

<- NET_SSH2_MSG_USERAUTH_SUCCESS (since last: 0.2388, network: 0.2387s) 


-> NET_SSH2_MSG_CHANNEL_OPEN (since last: 0.0001, network: 0s) 
00000000 00:00:00:07:73:65:73:73:69:6f:6e:00:00:00:01:7f ....session..... 
00000010 ff:ff:ff:00:00:40:00        [email protected] 

<- NET_SSH2_MSG_CHANNEL_OPEN_CONFIRMATION (since last: 0.2093, network: 0.2092s) 
00000000 00:00:00:01:00:00:00:00:00:00:00:00:00:00:80:00 ................ 

-> NET_SSH2_MSG_CHANNEL_REQUEST (since last: 0.0001, network: 0s) 
00000000 00:00:00:00:00:00:00:07:70:74:79:2d:72:65:71:01 ........pty-req. 
00000010 00:00:00:05:76:74:31:30:30:00:00:00:50:00:00:00 ....vt100...P... 
00000020 18:00:00:00:00:00:00:00:00:00:00:00:01:00  .............. 

<- NET_SSH2_MSG_CHANNEL_SUCCESS (since last: 0.2233, network: 0.2232s) 
00000000 00:00:00:01          .... 

-> NET_SSH2_MSG_CHANNEL_REQUEST (since last: 0.0001, network: 0s) 
00000000 00:00:00:00:00:00:00:05:73:68:65:6c:6c:01  ........shell. 

<- NET_SSH2_MSG_CHANNEL_WINDOW_ADJUST (since last: 0.2153, network: 0.2153s) 
00000000 00:00:00:01:00:20:00:00       ..... .. 

<- NET_SSH2_MSG_CHANNEL_SUCCESS (since last: 0.0001, network: 0s) 
00000000 00:00:00:01          .... 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0158, network: 0.0157s) 
00000000 00:00:00:01:00:00:00:32:2d:2d:2d:20:4a:55:4e:4f .......2--- JUNO 
00000010 53:20:31:32:2e:33:52:33:2e:34:20:62:75:69:6c:74 S 12.3R3.4 built 
00000020 20:32:30:31:33:2d:30:36:2d:31:34:20:30:30:3a:30 2013-06-14 00:0 
00000030 36:3a:33:34:20:55:54:43:0d:0a     6:34 UTC.. 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.6052, network: 0.6051s) 
00000000 00:00:00:01:00:00:00:0c:7b:6d:61:73:74:65:72:3a ........{master: 
00000010 30:7d:0d:0a          0}.. 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0016, network: 0.0015s) 
00000000 00:00:00:01:00:00:00:11:4c:48:42:52:40:45:56:4f [email protected] 
00000010 2d:48:4e:31:31:2d:31:3e:20      -HN11-1> 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s) 
00000000 00:00:00:00:00:00:00:18:73:65:74:20:63:6c:69:20 ........set cli 
00000010 73:63:72:65:65:6e:2d:6c:65:6e:67:74:68:20:30:0a screen-length 0. 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.207, network: 0.207s) 
00000000 00:00:00:01:00:00:00:01:73      ........s 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0015, network: 0.0014s) 
00000000 00:00:00:01:00:00:00:01:65      ........e 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0015, network: 0.0015s) 
00000000 00:00:00:01:00:00:00:01:74      ........t 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0047, network: 0.0046s) 
00000000 00:00:00:01:00:00:00:01:20      ........ 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0014, network: 0.0014s) 
00000000 00:00:00:01:00:00:00:01:63      ........c 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0025, network: 0.0024s) 
00000000 00:00:00:01:00:00:00:01:6c      ........l 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0015, network: 0.0015s) 
00000000 00:00:00:01:00:00:00:01:69      ........i 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0039, network: 0.0039s) 
00000000 00:00:00:01:00:00:00:01:20      ........ 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0016, network: 0.0015s) 
00000000 00:00:00:01:00:00:00:01:73      ........s 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0021, network: 0.002s) 
00000000 00:00:00:01:00:00:00:01:63      ........c 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0016, network: 0.0015s) 
00000000 00:00:00:01:00:00:00:01:72      ........r 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0014, network: 0.0014s) 
00000000 00:00:00:01:00:00:00:01:65      ........e 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0017, network: 0.0017s) 
00000000 00:00:00:01:00:00:00:01:65      ........e 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0047, network: 0.0046s) 
00000000 00:00:00:01:00:00:00:01:6e      ........n 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0002, network: 0.0001s) 
00000000 00:00:00:01:00:00:00:01:2d      ........- 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s) 
00000000 00:00:00:01:00:00:00:01:6c      ........l 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:01:00:00:00:01:65      ........e 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0009, network: 0.0009s) 
00000000 00:00:00:01:00:00:00:01:6e      ........n 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0016, network: 0.0016s) 
00000000 00:00:00:01:00:00:00:01:67      ........g 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0022, network: 0.0021s) 
00000000 00:00:00:01:00:00:00:01:74      ........t 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0016, network: 0.0015s) 
00000000 00:00:00:01:00:00:00:01:68      ........h 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0041, network: 0.004s) 
00000000 00:00:00:01:00:00:00:01:20      ........ 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0016, network: 0.0015s) 
00000000 00:00:00:01:00:00:00:01:30      ........0 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0048, network: 0.0047s) 
00000000 00:00:00:01:00:00:00:01:20      ........ 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0023, network: 0.0022s) 
00000000 00:00:00:01:00:00:00:02:0d:0a     .......... 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0048, network: 0.0048s) 
00000000 00:00:00:01:00:00:00:18:53:63:72:65:65:6e:20:6c ........Screen l 
00000010 65:6e:67:74:68:20:73:65:74:20:74:6f:20:30:0d:0a ength set to 0.. 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0021, network: 0.002s) 
00000000 00:00:00:01:00:00:00:02:0d:0a     .......... 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0043, network: 0.0043s) 
00000000 00:00:00:01:00:00:00:0c:7b:6d:61:73:74:65:72:3a ........{master: 
00000010 30:7d:0d:0a          0}.. 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s) 
00000000 00:00:00:01:00:00:00:11:4c:48:42:52:40:45:56:4f [email protected] 
00000010 2d:48:4e:31:31:2d:31:3e:20      -HN11-1> 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s) 
00000000 00:00:00:00:00:00:00:01:63      ........c 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s) 
00000000 00:00:00:00:00:00:00:01:6f      ........o 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:6e      ........n 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:66      ........f 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:69      ........i 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:67      ........g 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:75      ........u 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:72      ........r 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:65      ........e 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:0a      ......... 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:73      ........s 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:65      ........e 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:74      ........t 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:20      ........ 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:70      ........p 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:6f      ........o 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:6c      ........l 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:69      ........i 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:63      ........c 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:79      ........y 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:2d      ........- 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:6f      ........o 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:70      ........p 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:74      ........t 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:69      ........i 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:6f      ........o 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:6e      ........n 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:73      ........s 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:20      ........ 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:70      ........p 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:72      ........r 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:65      ........e 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:66      ........f 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:69      ........i 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:78      ........x 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:2d      ........- 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:6c      ........l 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:69      ........i 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:73      ........s 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:74      ........t 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:20      ........ 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:64      ........d 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:64      ........d 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:6f      ........o 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:73      ........s 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:48      ........H 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:6f      ........o 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:73      ........s 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:74      ........t 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:20      ........ 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:31      ........1 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:38      ........8 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:35      ........5 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:2e      ......... 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:31      ........1 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:36      ........6 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:2e      ......... 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:38      ........8 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:34      ........4 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:2e      ......... 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:37      ........7 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:30      ........0 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:20      ........ 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:32      ........2 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:35      ........5 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:35      ........5 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:2e      ......... 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:32      ........2 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:35      ........5 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:35      ........5 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:2e      ......... 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:32      ........2 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:35      ........5 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:35      ........5 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:2e      ......... 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:32      ........2 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:35      ........5 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:35      ........5 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:0a      ......... 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:63      ........c 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:6f      ........o 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:6d      ........m 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:6d      ........m 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:69      ........i 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:74      ........t 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:01:0a      ......... 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:05:65:78:69:74:0a   ........exit. 
+0

로그가 도움이됩니다. 'define ('NET_SSH2_LOGGING', 2);'을 실행하고'create_nullroute'가 실행 된 후'$ ssh-> getLog()'를 실행하여 얻을 수 있습니다. – neubert

+0

나는 그것을 잊었지만 지금은 그것을 추가했다. –

+0

@BrettPowell 거의 3 년이되었지만이 문제에 대한 해결책을 찾았습니까? 나는 지금 같은 문제에 직면하고있다. –

답변

1

당신은 거기에 몇 가지 $ssh->read() 년대를 던지는 시도 할 수 있습니다. 내 경험에 따르면, 이전 명령이 실행될 수 있기 전에 그 사이에 어떤 read()도하지 않고 명령을 보낸 후에 명령을 보내면 너무 빠를 수 있습니다.

+0

고마워요, 이미 운이 좋았지 만. 그 경우 수도 있고 각 줄 후 일부 read() 던지기 시도했다 그러나 그것은 실제적으로 어딘가에 문자열 (write) 보낸 길이에 어딘가에 것으로 보인다. –

0

짧은 답변 :

이 그냥 추측 대신 $this->conn->write("configure\n"); 일을 한 번에 하나 개의 문자를 작성하려고합니다. 예.

$cmd = "configure\n"; 
for ($i = 0; $i < strlen($cmd); $i++) { 
    $this->conn->write($cmd[$i]); 
} 

긴 답변 : 당신이 그것을 보낸 후

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s) 
00000000 00:00:00:00:00:00:00:0a:63:6f:6e:66:69:67:75:72 ........configur 
00000010 65:0a           e. 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.1027, network: 0.1026s) 
00000000 00:00:00:01:00:00:00:01:63      ........c 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0012, network: 0.0011s) 
00000000 00:00:00:01:00:00:00:08:6f:6e:66:69:67:75:72:65 ........onfigure 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0047, network: 0.0046s) 
00000000 00:00:00:01:00:00:00:01:20      ........ 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0118, network: 0.0118s) 
00000000 00:00:00:01:00:00:00:02:0d:0a     .......... 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0015, network: 0.0015s) 
00000000 00:00:00:01:00:00:00:1d:45:6e:74:65:72:69:6e:67 ........Entering 
00000010 20:63:6f:6e:66:69:67:75:72:61:74:69:6f:6e:20:6d configuration m 
00000020 6f:64:65:0d:0a         ode.. 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0019, network: 0.0018s) 
00000000 00:00:00:01:00:00:00:02:0d:0a     .......... 

<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0013, network: 0.0013s) 
00000000 00:00:00:01:00:00:00:23:7b:6d:61:73:74:65:72:3a .......#{master: 
00000010 30:7d:5b:65:64:69:74:5d:0d:0a:4c:48:42:52:40:45 0}[edit][email protected] 
00000020 56:4f:2d:48:4e:31:31:2d:31:23:20     VO-HN11-1# 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s) 
00000000 00:00:00:00:00:00:00:45:73:65:74:20:70:6f:6c:69 .......Eset poli 
00000010 63:79:2d:6f:70:74:69:6f:6e:73:20:70:72:65:66:69 cy-options prefi 
00000020 78:2d:6c:69:73:74:20:64:64:6f:73:48:6f:73:74:20 x-list ddosHost 
00000030 31:38:35:2e:31:36:2e:38:34:2e:37:30:20:32:35:35 186.26.81.23 255 
00000040 2e:32:35:35:2e:32:35:35:2e:32:35:35:0a   .255.255.255. 

-> NET_SSH2_MSG_CHANNEL_DATA (since last: 0, network: 0s) 
00000000 00:00:00:00:00:00:00:07:63:6f:6d:6d:69:74:0a  ........commit. 

그래서 서버가 다시 각 명령을 echo'ing된다. 흥미로운 점은 다소 우연히 그렇게하는 것입니다. 하나의 패킷으로 보내지는 configure의 경우와 마찬가지로, 다시 돌아 오는 응답은 두 개의 패킷으로 분할됩니다.

그런 다음 서버가 다음 명령 두 개를 보내면 서버가 아무 것도하지 않습니다. 그것은 그들이나 다른 것을 말하는 것이 아닙니다. 그런 다음 연결이 닫히고 있습니다.

이렇게하면 몇 가지 질문이 제기됩니다.

  1. 이러한 명령 다음에 $this->conn->read() (으)로 전화하지 않는 한 응답을 보내지 마십시오. 너? 그렇다면 원래 게시물의 코드가 최신 버전이 아닙니다.
  2. 게시 한 CLI 출력이 phpseclib 로그에있는 것과 일치하지 않습니다. 다음과 같이 phpseclibs가 발생했을 출력은 다음과 같습니다

    2--- JUNOS 12.3R3.4 built 2013-06-14 00:06:34 UTC 
    {master:0} 
    [email protected]> set cli screen-length 0 
    Screen length set to 0 
    {master:0} 
    [email protected]> configure 
    Entering configuration mode 
    #{master:0}[edit] 
    [email protected]# 
    

그래서 게시물에 존재하는 특정 불일치이있다 그러나, 없음 - 더 - 이하, 나는에 따라 하나의 생각이 무엇을 당신은 지금까지 게시했습니다.

$this->conn->write("configure\n");을 수행하는 대신 한 번에 한 문자 씩 작성해보십시오. 예.

$cmd = "configure\n"; 
for ($i = 0; $i < strlen($cmd); $i++) { 
    $this->conn->write($cmd[$i]); 
} 
+0

죄송합니다. 로그를 생성하기 전에 여러 가지 변경 사항을 테스트했으며 일부 수정 작업을 수행했을 수 있습니다. 나는 당신이 제안한 변화를 시도했지만, 그것은 의미가 있지만 불행히도 희망대로 작동하지는 않았다. 내가 원래의 게시물에 출력/코드/로그를 업데이 트했습니다. 고맙습니다! –

+0

또한 귀하의 질문에 대답하기 위해, 나는 모든 통화가 끝나면 어떤 통화 사이에서도()를 읽지 않습니다. 붙여 넣은 CLI 출력은 100 % 정확해야합니다. –

+0

'create_nullroute' 메쏘드를 호출하기 전에 반드시'read()'를해야합니다. 왜냐하면 초기 프롬프트를 얻었고, 보내지는 "set cli screen-length 0"명령이 있기 때문입니다 당신의'create_nullroute' 메소드. – neubert