Remote Connection Protocols
There are many different ways in which we can connect to a remote machine over the Internet. These include (but are not limited to):
- telnet (typically to connect to a machine running UNIX, but not always)
- ssh (also typically to connect to a machine running UNIX, but the information being exchanged is encrypted)
- rdc (to connect to a Windows 2000/2003 server or Windows XP machine – password transmission is encrypted, not sure if the screen image information is)
What happens in a typical remote connection?
The client on your machine communicates with the server on the other machine using the particular protocol.
The client will essentially: - create a TCP connection
- accept your input (just keyboard for telnet and ssh, keyboard and mouse for rdc)
- reorganize the data you have entered into a standard transmission format
- send the data to the remote host - receive output from the remote host
- reformat and display that information to you The server will essentially:
- wait for a request to establish a connection
- help establish the TCP connection (typically in a new thread) - receive the client's input, and service the request
- send the results back to the client
Remote Login
Most telnet/ssh servers and all rdc servers are set up to have their default function (or service) set to be for remote login.
This will be the case when we login into GRACE/GLUE and WAM cluster machines using ssh. We are no longer able to use telnet to connect to these campus resources for security reasons. With telnet, everything we send (including user names and passwords) would be sent as plain text and could be intercepted and read by others. With ssh, the information is encrypted for transmission.
We will also see uses of the telnet protocol when connecting to other remote hosts to access their resources.
Connecting to a remote UNIX machine to login
There are many different client applications that run the ssh protocol. Most of these are clients with graphical user interfaces (GUIs) even though they simply exchange text. One example of such a client is the F-Secure Shell client for Windows from project 1. Some clients work from within a text-based command window. One example is the ssh client included as part of Mac OS X.
All clients will require the remote host's Internet name or IP address so that it can initiate communications. Many will also ask for your login id
working under the assumption that you are connecting in order to login. They typically will not prompt you for your password until the connection is made and the remote server is awaiting your password.
Practical Login Examples
We will now use ssh to connect to the GRACE remote login class cluster (the same technique will work to connect to the WAM remote login cluster).
The hostname grace.umd.edu is a load-balancing alias for the four different GRACE cluster. The GRACE cluster is technically part of the GLUE
cluster of machines (we will discuss this later).
There are two different sets of machines in the GRACE class cluster;
linux.grace.umd.edu is a load-balancing alias for the machines running the Linux operating system and solaris.grace.umd.edu is a load-balancing alias for the machines running the Solaris operating system.
The hostname wam.umd.edu is a load-balancing alias for the machines in the WAM login cluster. This cluster may be removed soon, so we may or may not use it later this semester.
Connecting to other remote machines using telnet
It is important to remember that TELNET is a protocol for communicating between computers, and that Remote Login to a UNIX machine is just one use of that protocol.
When you issue a command such as telnet machine.name the telnet program will "look" for a server at port 23 on the remote host named. Typically, a UNIX machine will have a telnet server "listening" on port 23 for user requests. Let us look at the following examples:
telnet heron.wico.lib.md.us [howard.howa.lib.md.us] telnet rainmaker.wunderground.com
These are different ways of allowing a remote user access to an application over the Internet. One way is to create a password-less user account, which runs a program rather than a UNIX shell. Another way is to have a special program listening to port 23 instead of the standard remote login
application. You can also have a server "listening" to other ports, in which case you need to specify that non-default port. Let us look at the following examples:
telnet msdnaa.cs.umd.edu 12468 telnet www.cs.umd.edu 80
Connecting to a remote machine with a GUI
In addition to text-based remote login connections, we can also connect to some GUI operating systems (such as Windows) if there is a server running on the remote machine and a client available for our local platform.
With windows, they have had rdc (Remote Desktop Connection) servers in Windows NT Server, 2000 Server, 2003 Server, and XP. However, you've needed to purchase licenses for the number of remote users you want to be able to simultaneously allow to connect.
In class we will go to a CS department machine running an rdc server (citrix3.cs.umd.edu) just to see it live.
It should be noted that using rdc is very slow and frustrating when used over a low-bandwidth Internet connection.