I'm getting close to the point of simply moving this back to PERL for a specific use case of editing files via SSH. It seems no matter what I do, additional line breaks are being placed in the file. Sample variable has the following:
req_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
Using the following command, I get the output below
$ssh->write("echo '$file' > /directory/test.txt\n");
Resulting in:
req_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
Edit adding relevant debug log:
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0022, network: 0s)
00000000 00:00:00:02:00:00:00:01:65 ........e
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0005, network: 0.0001s)
00000000 00:00:00:02:00:00:00:01:63 ........c
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0005, network: 0s)
00000000 00:00:00:02:00:00:00:01:68 ........h
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0003, network: 0s)
00000000 00:00:00:02:00:00:00:01:6f ........o
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0005, network: 0.0003s)
00000000 00:00:00:02:00:00:00:01:20 ........
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0004, network: 0s)
00000000 00:00:00:02:00:00:00:01:27 ........'
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0002, network: 0.0001s)
00000000 00:00:00:02:00:00:00:01:72 ........r
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:65 ........e
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0003, network: 0.0002s)
00000000 00:00:00:02:00:00:00:01:71 ........q
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:5f ........_
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:65 ........e
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0007, network: 0.0006s)
00000000 00:00:00:02:00:00:00:01:78 ........x
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0003, network: 0s)
00000000 00:00:00:02:00:00:00:01:74 ........t
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0002, network: 0.0001s)
00000000 00:00:00:02:00:00:00:01:65 ........e
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0003, network: 0.0002s)
00000000 00:00:00:02:00:00:00:01:6e ........n
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0002, network: 0s)
00000000 00:00:00:02:00:00:00:01:73 ........s
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:69 ........i
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0005, network: 0.0002s)
00000000 00:00:00:02:00:00:00:01:6f ........o
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0005, network: 0s)
00000000 00:00:00:02:00:00:00:01:6e ........n
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:73 ........s
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:20 ........
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0004, network: 0s)
00000000 00:00:00:02:00:00:00:01:3d ........=
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:20 ........
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0002, network: 0s)
00000000 00:00:00:02:00:00:00:01:76 ........v
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:33 ........3
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0002, network: 0s)
00000000 00:00:00:02:00:00:00:01:5f ........_
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0002, network: 0s)
00000000 00:00:00:02:00:00:00:01:72 ........r
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:65 ........e
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0002, network: 0.0001s)
00000000 00:00:00:02:00:00:00:01:71 ........q
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:02:0d:0a ..........
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:02:3e:20 ........>
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0005, network: 0.0004s)
00000000 00:00:00:02:00:00:00:02:0d:0a ..........
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:02:3e:20 ........>
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:70 ........p
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:72 ........r
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:6f ........o
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:6d ........m
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0002, network: 0.0001s)
00000000 00:00:00:02:00:00:00:01:70 ........p
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0002, network: 0s)
00000000 00:00:00:02:00:00:00:01:74 ........t
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:20 ........
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0002, network: 0s)
00000000 00:00:00:02:00:00:00:01:3d ........=
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:20 ........
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0002, network: 0.0002s)
00000000 00:00:00:02:00:00:00:01:6e ........n
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:01:6f ........o
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0002, network: 0.0002s)
00000000 00:00:00:02:00:00:00:02:0d:0a ..........
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:02:3e:20 ........>
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:02:0d:0a ..........
<- NET_SSH2_MSG_CHANNEL_DATA (since last: 0.0001, network: 0s)
00000000 00:00:00:02:00:00:00:02:3e:20 ........>
TIA