OK- I've been looking for and working on this for weeks now, and it's getting silly.
I don't usually give up easily, but this whole process is made so much more difficult and incredibly frustrating by a complete lack of any useful documentation or information, a total lack of google search results, and the fact that I have to set up other servers with other dependencies, and most of the things I need to install don't use make or any sensible build process.
Here's the situation:
I have a cheapo (166Mhz, 46Mb RAM) headless server in my cupboard, running Slackware 9.1 (kernel 2.4.22). It provides services to the internet (web, ftp, ssh, etc). My friend regularly connects to it via ssh using putty on a windows pc directly connected to the internet. This all works fine.
However, we also want to connect to it (and run shell commands) from school. This is a problem. The only way traffic gets out to the internet from the schools LAN is via a VERY restrictive proxy server, which only allows http and, if you are lucky, ftp downloads (somehow they have disabled uploads). If it can be restricted it probably has been, so there is no socks, no tunnels and no non-http traffic outbound.
Security is very important. The only way I have of authenticating users is using passwords which isn't really a security problem- i have very few users allowed to connect to ssh and all of them have strong passwords. Obviously, however, passwords must be encrypted. Actually- the whole connection must be encrypted- as I will probably entering sensitive information on the command line.
I tried putty, but it can't get through the proxy.
I tried mindterm, but unfortunately it's just a java ssh client which is downloaded and run on the local machine- so it can't get through the proxy either.
I had a look at the CGI-Shell, but that's not encrypted, so forget it, unless you can make it secure if run through https.
I tried SSHWebProxy- and regretted it. I HATE JAVA. I wish I had never bothered trying to set it up. I prefer to compile everything from source, but could I do that with this? Nope. It uses some stupid java build environment, which doesn't work properly. I ended up installing loads of binary packages- YUK! What a mess. I did actually manage to get apache tomcat running (in standalone mode only- I want it integrated with apache), and SSHWebProxy ran in the tomcat container. Then I added one step further to the configuration to get it ready to open up to the internet and SSHWebProxy stopped working. It also takes over a minute to start and stop the thing, which is unnacceptable. This was all done while fumbling around in the dark with very little documentation and no real idea what anything was. I also have no idea whether this would be encrypted or not.
Then my friend suggested Net::SSH::Perl (why do all perl modules have double colons in their name?). So I tried to get that to work. At least the perl build process was reasonably easy, but I had to download and compile loads of dependencies manually, because the automated download and installer didn't work. Right- installed Net::SSH:Perl. Now what? From the very short documentation for it:
Usage of Net::SSH::Perl is very simple.
To set up a new connection, call the new method, which connects to $host and returns a Net::SSH::Perl object.
Now, I know absolutely no perl, and while I need to learn it, I have many other things which I need to get working before I do- especially this shell, as that will help with the other things. From the above I assume that this means that I need to write my own perl script to interface with it. I can't do that. I've looked at some of the examples, but to make things worse they don't work either!
500: Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Then in the logs I get:
usage: Net::SSH::Perl->new($host) at /home/simon/www/systemparadox/cgi-bin/remoteinteract.pl line 49
[Thu Jul 14 19:45:29 2005] [error] [client 192.168.38.3] Premature end of script headers: /home/simon/www/systemparadox/cgi-bin/remoteinteract.pl
Surely someone has written an front end for this? Much frustrating google searching returns nothing. There is nothing on the Net::SSH::Perl pages about a front end.
Sorry about the probably inconsise and not overly helpful posting, but
1. I am so peeved (I'm currently having the same frustrating lack of documentation issue with trying to set up a mail server), and
2. I don't really know what I'm talking about- seriously not helped by the total lack of documentation.
Please let me know if there is any other info I should give you.
Thankyou so much for any help