I am using PHPSecLib to send commands via SSH to network switches, which works fine in most cases. I have had to make a few modifications to support a different brand, however it appears that sending the commands via write() is resulting in these being split.
I have never seen anything like this and I am beyond stumped as to what is causing it. Is there anything in PHPSecLib/SSH that would force command line strings to a certain length?
Command Line Output:
configure Entering configuration mode
{master:0}[edit]
LHBR@EVO-HN11-1# set policy-options prefix-list ddosHost 183.24.48.7 255.
LHBR@EVO-HN11-1# ...ix-list ddosHost 183.24.48.7 255.2 55.255.255 ^ syntax error.
{master:0}[edit]
LHBR@EVO-HN11-1# commit configuration check succeeds commit complete
{master:0}[edit]
LHBR@EVO-HN11-1# exit Exiting configuration mode
{master:0}
LHBR@EVO-HN11-1>
Function:
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
");
$this->write_msg("set policy-options prefix-list ddosHost " . $ip . " " . $netmask . "
");
$this->write_msg("commit
");
// Escape the config mode
$this->conn->write("exit
");
echo "</br><pre>" . $this->conn->getLog() . "</pre>";
echo $this->conn->read($this->_bashshell);
}
PHPSecLib Log:
-> 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 .....@.
<- 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 ........LHBR@EVO
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 ........LHBR@EVO
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.