This set of scripts provides rudimentary shell capabilities for shared web servers that don't allow ssh or rlogin access.
It is based on Christophe Gevrey's scriptlocal/scriptremote scripts at http://cri.ch/perl/docs/cg0001.html.
From Christophe's original description:
You have a Windows machine with a Perl interpreter (ActivePerl from ActiveState for example).
You have FTP access to a Linux box with a Perl CGI script engine (typically, the box where your website is hosted).
But you are very frustrated because you do not have a TELNET or a SSH access to this box, it would be much more easy to zip or untar your files...
The solution we suggest you is to create two scripts, a CGI wich will run on the server and a Perl script that will run locally in a command line window. The local software will send commands to your CGI in an HTTP request, the CGI will interpret the command and will return the output wich will be displayed by the windows script.
It will really look like a command shell!
For security, the proper solution would be to use HTTPS to encrypt the communication with the web server. This typically is not supported by cheap shared hosting providers.
The main enhancements over the original script is to transmit the secret string not as cleartext, but by combining it with a timestamp to create a cryptographic hash using the MD5 algorithm. This means that if your internet connection is monitored by a 3rd party, it is more difficult for that party to determine your password. The use of a timestamp ensures that replay attacks are only possible for a limited period of time, currently 90s. This approach assumes that the clocks on client and server are identical within the 90s resolution.
Another enhancement is the use of perl's Term::Readline package to provide command history and editing capabilities.
1. Checkout the files from Sourceforge:
svn co https://nosh.svn.sourceforge.net/svnroot/nosh/trunk nosh
2. Choose a secret string
3. Invoke the prepare script to insert the secret string into the nosh_server.pl_in file, creating nosh_server.pl
4. Upload nosh_server.pl to your web servers' cgi-bin directory
On your local machine, invoke "nosh
This is our project page on Sourceforge: https://sourceforge.net/projects/nosh/