Computer Science & Computer Engineering


The secure shell (ssh) is a program that allows you to establish a connection to a remote computer and run commands on that computer. The output of the commands you run display on your local computer. ssh is "secure" because the commands that you send and the output you receive are encrypted between your computer and the remote computer; “shell” is a term that refers to a utility that processes commands.

ATTENTION: Are you on an off-campus Internet connection? Then see our documentation of the UW–L VPN first; you must use the VPN when connecting to most department services from off-campus.

You are allowed to have several ssh sessions open at the same time, one per terminal window. Maintaining at least two sessions—one for editing your project files (leaving your editor open) and a second for compiling and running your programs—can drastically speed up your work. Having many ssh sessions open at once is very common.

Connect via SSH

Open a terminal window. From your terminal, issue the following command:


You should use your campus username (the portion of your email address before the '@') in place of USERNAME in the command above. ssh will prompt you for a password. Type your campus password, and press enter.

ATTENTION: Nothing will appear on the screen as you type your password. Type carefully, and trust that the password is indeed being transmitted.

Once you havve logged in, you should see a command-line prompt (typically ends with a dollar sign). If you want to just verify that you are logged in, you can issue the command hostname, which should reply with the name of the computer that you logged in to.

“Forget” a host key

SSH caches the keys associated with the hosts you connect to so that the system can detect if one host masquerades as another. This scheme works as long as the legitimate host's key does not change. Sometimes keys do change, and when this happens you need to alert your SSH client. Cached host keys exists at .ssh/known_hosts, relative to your home directory.

To remove a host key on Linux or macOS, run nano ~/.ssh/known_hosts. Look for the key that matches the host you are connecting to. You can substitute another editor for nano.

To remove a host key on Windows, run notepad %userprofile%/.ssh/known_hosts. You can substitute another editor for notepad.

Of course, care must be taken so that you do not accidentally connect to the wrong host. You should confirm the fingerprint of the new key when you connect after removing the old key. We publish the fingerprints of our hosts here.