Requirement: SSH connection from Client to Server should work.(Client has only port 80 and 443 open, Server has port 80, 443 and 22 open)
Server: Ubuntu Client: Ubuntu or Windows
Solution 1: Let SSH Server listen on a new port 443
This Solution works for both type of Client, i.e, it works for Ubuntu and Windows.
On Server:
$ sudo nano /etc/ssh/sshd_config
Change Port 22 to Port 443
On Client:
ssh -p 443 username_on_Server@IP_of_Server
sftp -P 443 username_on_Server@IP_of_Server
Solution 2: Use httptunnel
1. This solution works only for ubuntu client. It doesn't work on windows client.
2. Download “HTTPTunnel_v1.2.1_platformindependent.tgz” from http://sourceforge.net/projects/http-tunnel/files/http-tunnel/HTTPTunnel%20v1.2.1/ to Client and Server.
3. Install HTTPTunnel on Client and Server. $tar -xvzf HTTPTunnel_v1.2.1_platformindependent.tgz $cd HTTPTunnel_v1.2.1 $cp -R common perl $cd perl
4. Start HTTPTunnel on Client $perl httptunnel_client.pl
5. Start HTTPTunnel on Server $perl httptunnel_server.pl
6. On Client, open browser to URL http://localhost:1079
7. Config Client http://localhost:1079
On Tab "Tunnel Client", modify the "Portmapping Proxy" with following parameter: Map port: 10022 to port: 22 on server: IP_of_Server Make sure that port 10022 is unused: command "$sudo lsof -i :10022" must list nothing Otherwise set another value to "Map port" greater than 1024
8. On Server, open browser to URL http://localhost
Make sure, that port 80 is unused. Otherwise stop the process which use port 80. "$sudo lsof -i :80" "$sudo kill pid_number"
9. On Client, use following command to connect Server:
$ssh -p 10022 username_in_Server@localhost
10. On Client, also FileZilla works with following Setting:
Host: localhost Port: 10022 Protocol: SFTP-SSH File Transfer Protocol Logon Type: Ask for password user: username in Server
If you want the connection be encrypted, please install Crypt::OpenSSL::RSA and Mcrypt for perl on Ubuntu:
11. upgrade and update $sudo apt-get upgrade $sudo apt-get update
12. Install perl modus Crypt::OpenSSL::RSA
$sudo apt-get install libssl-dev $sudo perl -MCPAN -e 'install Crypt::OpenSSL::RSA'
13. Prepare for installing perl modus Mcrypt
$sudo apt-get install synaptic $sudo synaptic
install following packages from synaptic:
libyaml-libyaml-perl libyaml-perl libmcrypt-dev
14. Create syslink for libltdl.so sudo ln -s /usr/lib/x86_64-linux-gnu/libltdl.so.7 /usr/lib/x86_64-linux-gnu/libltdl.so
15. Install Mcrypt $sudo perl -MCPAN -e 'install Mcrypt'
16. Start server again, Warning about Encryption is not shown anymore. $perl httptunnel_server.pl