So Your Android phone is pretty good, but what if it was as powerful as your home desktop?  Well you can VNC into your home computer and get all that processing power and storage from anywhere in the world with cell service or Wi-Fi.  (provided of course you have an Android powered handset, Linux at home and a desire to show off to nerds everywhere). 

 

To create a secure SSH tunnel to your Linux computer from an android phone;

Prerequisites: 

  1. Have an ssh server and VNC server running on your home system,
  2. Have your home router setup to forward ssh traffic to your home computer. (this should be quite easy to figure out with some basic Google searching.)
    1. Tip: config your computer to listen for SSH connections on port 443 in addition to the standard 22. This allows you to tunnel from behind many restricted networks (like the over-locked down one at the college campus).
  3. Have your External IP, I recommend dynamic dns to get your routers external facing IP updated through DNS so you can connect with less of a headache when your ISP changes your IP.

Setup your Phone:

  1. Download ConnectBot to your phone from the android marketplace, put in your computers IP or hostname information (and password of course). You may want to test this first step to make sure you can ssh in before you set up the port forward.
  2. In ConnectBot click menu key on the phone.
  3. Click Port Forwards on the screen.
  4. Click menu on the phone.
  5. Click Add port forward on the screen.
  6. Enter the following settings.
    1. Nickname: VNC
    2. Type: Local
    3. Source Port: 5901
    4. Destination: localhost:5900 (You will want to set your VNC server to listen from the localhost, using localhost only connections is better for security reasons. this way you do not broadcast VNC to the world or your LAN)
  7. Download androidVNC to your phone from the android marketplace.
  8. Open androidVNC and enter the following settings.
    1. Nickname: (leave this field blank)
    2. Password: (The password you set up on your remote computer for VNC, check the Keep box)
    3. Address: 127.0.0.1 (or localhost)
    4. Port: 5901
  9. Click connect and you should be connected!

Some Hints for connecting to OSX systems:

for OS X users get Vine Server. Its a free, open source [but is now maintained by a commercial company] VNC app that allows SSH connections. AFAIK, OS X's native VNC [a.k.a Screen Sharing] doesn't allow SSH connections.

Vine Server also allows lower color depth than OS X's native VNC which only allows 24bit color.

Also, a couple of tips for configuring Vine Server:
Trying to log into my Mac, my password kept getting refused. It turned out that Shift [and Caps] wasn't working. In Vine Server go to:
Preferences/Device set the Keyboard Layout to Unicode Hex Input. 

I was also getting intermittent RFB errors. So I went to
Permissions/Advanced and set RFB Protocol to 3.7 and so far I haven't had the RFV error.

To Setup OpenSSH on Windows:

Here is a great article to get you started: How To Get SSH Command-Line Access to Windows 7 Using Cygwin