<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Very cool:<div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">$ ssh <a href="mailto:mark@10.10.41.217" class="">mark@10.10.41.217</a> 'module tasks'</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Number of Tasks = 15       Stack:  Now   Max Total    Heap</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Task 3FFB4FA4  1 eventTask         448  2560  4096   54100</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Task 3FFCC87C  2 CanRxTask         424   424  2048       0</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Task 3FFD06B8  3 ipc0              388   436  1024    9240</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Task 3FFD0CB0  4 ipc1              396   444  1024      32</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Task 3FFD28C8  7 IDLE              356   468  1024      32</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Task 3FFD2E58  8 IDLE              356   468  1024      32</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Task 3FFD40F0  9 Tmr Svc           348  2220  4096       0</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Task 3FFDC0FC 13 Housekeeping      328  1960  4096   46944</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Task 3FFDF3D4 15 tiT               496  1232  2560    5576</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Task 3FFE3B9C 16 SIMCOMTask        464   464  4096       0</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Task 3FFE8B38 17 AsyncConsole      548  2468  5120   18708</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Task 3FFEAA04 18 wifi              432  2048  4096    6000</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Task 3FFEDB44 19 pmT               416  1408  2560       0</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Task 3FFEEC68 20 rtT               404   596  3584       0</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Task 3FFF1258 21 NetManTask       2644  5540  7168   12760</span></font></div></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class=""><br class=""></span></font></div><div class=""><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">$ scp -q <a href="mailto:mark@10.10.41.217" class="">mark@10.10.41.217</a>:/store/obd2ecu/4 /dev/tty</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">20;</span></font></div></div></blockquote><div class=""><br class=""></div><div class="">But no candy:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">$ sshfs -d <a href="mailto:mark@10.10.41.217" class="">mark@10.10.41.217</a>:/store ~/Volumes/OVMS</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">FUSE library version: 2.9.7</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">nullpath_ok: 0</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">nopath: 0</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">utime_omit_ok: 0</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">Connection to 10.10.41.217 closed by remote host.</span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">remote host has disconnected</span></font></div></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class=""><br class=""></span></font></div><div class=""><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">OVMS ></span></font></div><div class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">E (1655031) ssh: Error in reception: -17</span></font></div></div></blockquote><div class=""><br class=""></div><div class="">Regards, Mark.</div><div class=""><br class=""></div><div class=""><div><blockquote type="cite" class=""><div class="">On 10 Dec 2017, at 10:27 AM, Stephen Casner <<a href="mailto:casner@acm.org" class="">casner@acm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">I have extended the SSH server in console_ssh to support SSH session<br class="">type "exec" in addition to the original "shell" session type.  This<br class="">allows the client ssh command to be followed by a command to the<br class="">executed on OVMS:<br class=""><br class="">auge1221> ssh ovms vfs ls /store<br class="">ovms_config<br class="">scripts<br class="">events<br class="">testdir<br class="">auge1222><br class=""><br class="">It also allows use of the client's scp command to transfer files to or<br class="">from OVMS.  The clients scp command starts an ssh session and passes<br class="">along an scp command to be executed on the server's end.  On a<br class="">Unix-like system the server would execute the scp command as a<br class="">separate process, but on OVMS I have implemented the scp protocol<br class="">within console_ssh.<br class=""><br class="">So, for example, I can use scp to fetch my startup script so I can<br class="">edit it to remove the extra command I added to set the logging level<br class="">for ssh while I was debugging and then write back the updated script:<br class=""><br class="">auge1224> scp -r ovms:/store/events .<br class="">startmeup                                100%   72     0.1KB/s   00:00<br class="">auge1225> scp events/system.start/startmeup ovms:/store/events/system.start/<br class="">startmeup                                100%   56     0.1KB/s   00:00<br class="">auge1226><br class=""><br class="">In these examples you see that I am using public key authentication so<br class="">I don't have to enter a password.  Secure and very convenient!<br class=""><br class="">The SSH implementation is a bit slow doing the public key calculations<br class="">so there is a pause of a few seconds as each command begins, but then<br class="">the files are transmitted expediously.  I have not attempted yet to do<br class="">tuning of build options for wolfssh for speed and memory usage.  I<br class="">have also not figured out yet how to perform the rekeying procedure<br class="">with this wolfssh library.  Because the rekeying is not implemented<br class="">properly some data may be lost when it occurs.  However, rekeying will<br class="">be triggered after about 1GB of data transfer, so it seems unlikely<br class="">that we will hit that trigger right away.<br class=""><br class="">For those who have been wondering when this would be completed, sorry<br class="">for the delay.  The scp protocol is somewhat crude and there is no<br class="">document to specify it which meant I had to do experiments to figure<br class="">out the right actions at each step.  Finally I found the OpenSSH<br class="">implementation on github so I could RTSL.  After that testing all the<br class="">corner cases took a while.  I'm sure you all will let me know if you<br class="">find problems!<br class=""><br class="">                                                        -- Steve<br class="">_______________________________________________<br class="">OvmsDev mailing list<br class=""><a href="mailto:OvmsDev@lists.teslaclub.hk" class="">OvmsDev@lists.teslaclub.hk</a><br class="">http://lists.teslaclub.hk/mailman/listinfo/ovmsdev<br class=""></div></div></blockquote></div><br class=""></div></body></html>