Free Clients | Tunneling | Back to Freestuff Home

Secure Shell

Secure Shell is the only way to communicate between systems.  When you want to get onto another UNIX machine, move files back and forth, or transfer a service to an open port by doing something called "tunneling", Secure Shell, better known as SSH, is the way to go.

Now, what exactly is Secure Shell?  For a client, it's a piece of software that lets you securely connect to a remote system and login (if you have the credentials for that system).  You can also do secure file transfers over the same secure connection.  If SSH is set up as a server, you can allow other people to come to your system and connect.  We are going to concentrate on the client side here so you can use SSH to connect to remote servers. 

Back to the point, here's how SSH is defined at Wikipedia...

"Secure Shell or SSH is a set of standards and an associated network protocol that allows establishing a secure channel between a local and a remote computer. It uses public-key cryptography to authenticate the remote computer and (optionally) to allow the remote computer to authenticate the user."

That's better than I could have done...

SSH is a better way to connect to a remote system than telnet or rlogin used to be.  The reason being that these old services were unencrypted.  Now, SSH has replaced all of them, as well as FTP for moving files, and is easily the most popular way to use a remote system.

Free Clients

We are going to take a look WinSSH from SSH Communications.  Rutgers University has a education license with them, so don't worry if you go to the SSH Communications site and they ask you for money to donwload a copy.  I will walk you through the process of getting a Windows Client if you are a Rutgers Student.  You'll need a valid RU Netid to go and grab the client, but after that it's a piece of cake to install it and start using it.  If you are not a Rutgers student we recommend PuTTy, which is free for everyone...

If you are not a Rutgers student : 

try PuTTy It's a good client and the free version has solid capabilities.

If you are a Rutgers Student :

First, go to the Rutgers Software website and login with your Netid and password.

Once this is done you will be at the University Software page...

 

then click on the "more" link...

 

Click on Telnet and FTP apps...

 

And at the bottom of the page we find our culprit... Click on the link to go to the page for the app...

 

Viola.  Right click on the "setup.exe" link and save it to your temp directory...

From there you can double click it and install the app. 

 

Hmmm, doesn't look like much..  Let's press "Quick Connect"

 

Here we go.  I am going to try to login to Remus, the Undergraduate Computer Science UNIX server here at Rutgers.  As you can see, I tell the app where to go, remus.rutgers.edu, what my login userid is, in my case "larz", and the Port number.  In almost all cases this will be 22 for SSH but some people like to play games and run SSH on different ports sometimes.  I hit Connect...

 

Enter your password....

 

and Viola!  I'm logged into the remote server, in this case, Remus.

 

Now I can do whatever I need to do...

 

SSH can also be used to transfer files from the host to the client...  By hitting the file button I can get a screen like this...

Works great and the price is right....

 

Tunneling

Tunneling is a little more advanced, but I figured I'd mention it as it does come in handy.  Tunneling is when you pick up something meant for a port on the server machine, send it to 22 instead, move it across the line to your client and send it to a port of your local machine.  Often used for X11 port forwarding, it's a good way to get around firewall restrictions, if you have an account and are doing so legally, without having to run a full blown VPN.

Go to the Edit menu and select "Settings".  In the list on the left you'll see 'Tunneling" underneath "Profile Settings".  Check it out.

For usage as an undergrad CS student you could use it to hit a local port for a database connection and have the request tunnel to your remote server for the connection.  Say you write a program at your house and want to use this remote database.  How do you do it?  You give it a port number on your local system, use SSH to forward that port to a remote system and then have the remote system use the proper port for the database.

If this seems bizarre don't worry.  You can live a long and productive life without knowing jack about tunneling, but it is a useful feature at times and I figured I'd throw it out there...

 

If you have any questions, suggestions, or corrections please let me know... 

biglars@cs.rutgers.edu

© 2007 Rutgers University