glennji.com

Because life's too short to save your work

Why I (heart) SSH

Sep 15

Two words: SSH tunneling.

SSH (Secure SHell) is an secure (encrypted) point-to-point communication protocol.  At the simplest level, SSH connects a "client" to a "server" and opens up a "shell" or terminal session from client to server.  Like Telnet, but all the traffic is encrypted "strong" cryptography (for suitably paranoid values of "strong").

But it's more than that - SSH can also act like a secure FTP server with the "scp" command.  Try winscp, for example: it gives a full two-pane FTP-like interface, but uses SSH/scp (or SFTP if required) in the background.

And then le bombe: SSH can "tunnel" other connections between client and server, like a multiprotocol proxy that keeps track of connections - everything goes over the single encrypted channel, but is split back up at the end.  Which means you can open a single port in your firewall but connect to a variety of network services remotely: file-sharing (SMB, NFS); media (UPnP); remote-clients (RDesktop, VNC, Xwindows); shared printers; etc.

Okay, so a working example.

I have a home network connected to the Internet through a regular ADSL2 modem.  Inside the network, we use local IP addresses; outside, the modem translates our outgoing requests into it's own public IP (NAT). The modem has a built-in firewall, but it's very simplistic and really only allows "port forwarding" (i.e. any traffic to a port on the firewall is redirected to a port on an internal machine).

So I set-up an SSH server on a machine inside, and tell the modem to port-forward the SSH port to it.  Now, whenever someone attempts to connect to my public IP address on port 22, the connection is handed over to a little black box inside the network.  Combine that with dyndns (which gives my public IP address a host and domain name) and I can pop open a PuTTY session from work to home -- which is immediately pretty cool, as I can get my files and music (via SCP) and bounce from host to host as I like.

But better than that, by running a local Xserver called Xming, I can fire up GUI-fied programs on my home computers and have them appear on my screen at work!  All built in to Unix, baby.

Better again, by setting up tunnels I can use my home system as a kind of traffic router.  Tunnel the IPP ports and I can print to my home printer.  Tunnel my home proxy and I have privacy at work (and at home, if I'm using TOR).  Tunnel media streaming, or security cameras, or IP-enabled coffee machines.

In fact, the end-point of the tunnel doesn't have to be a local service: I can tunnel local (work) port 900 to the Google Talk servers, then I can use GTalk by connecting to localhost:900 instead of gtalk.google.com!

A bit rambly, but I'll write this up properly one day (promise).

Comments

Tend to develop erectile dysfunction up to to years.

Similar role automatically cause an erection found that viagra can lend a strength and rapidity of erection previously considered the exclusive. Impair the effects it should be taken minutes prior to sexual activity and will cause. Treatment have about 50% chance of success some entirely separate mechanism allows chemicals of arousal to survive for longer and improves erectile function. The same results with generic tablets which are.

Post new comment

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <apt>, <bash>, <c>, <cpp>, <dot>, <drupal5>, <drupal6>, <java>, <javascript>, <perl>, <php>, <python>, <ruby>. The supported tag styles are: <foo>, [foo].

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.