Linux SSH Access

All Linux servers in CS run an SSH server on port 22. Anyone with a CS account may log into these servers, from both inside and outside of the University.

If you are familiar with SSH and are just looking for a server to log in to, try portal.cs.virginia.edu - a set of load balanced servers for general access.

Computer Science hosts its own DNS server with authority over the cs.virginia.edu domain space. Any server in CS will have a fully qualified domain name (fqdn) of hostname.cs.virginia.edu.

If you want to log into a server named gpusrv04, then the domain address should be gpusrv04.cs.virginia.edu.

Short Names

If you are inside of the Computer Science network then you can simply use the hostname of a server instead of its fully qualified name. For example, if you are logged into a CS server, you can ping another server by its hostname alone.

username@power5:~$ ping power3
PING power3.cs.virginia.edu (128.143.67.43) 56(84) bytes of data.
64 bytes from power3.cs.virginia.edu (128.143.67.43): icmp_seq=1 ttl=64 time=0.149 ms
64 bytes from power3.cs.virginia.edu (128.143.67.43): icmp_seq=2 ttl=64 time=0.123 ms

This will not work from outside of the CS network unless you modify your DNS search path to contain cs.virginia.edu.

From Linux/Mac OS

To log into this server from another computer running Linux/Unix/MacOS, run the following from a shell:

username@host ~ $ ssh username@gpusrv04.cs.virginia.edu
username@gpusrv04's password:                              <- Enter Password
...
[username@gpusrv04 ~]$

In Mac OS the Terminal app can be found in the Utilities folder under Applications.

From Windows

For information about SSH clients for Windows, see the article SSH from Windows

For a listing of generally available servers in CS, see the article General Purpose Nodes

Here in CS we want to give all of our users fair and equal access to whatever computing resources we have to offer. For this reason we are discontinuing the practice of restricting login access to certain servers. However, there are a number of servers that still have access restrictions in place. This article is to show users with sudo privileges how to edit /etc/security/time.conf to allow user logins.

There are several configuration files located in /etc/security on Linux servers. In this directory, we can use time.conf to restrict ssh login to a specific set of user accounts.

PAM Setup

This section can be skipped over if your server has already been configured with login restrictions.

By default, access rules in time.conf are not used unless a PAM module (pluggable authentication module) is configured to read them. This is done by adding a line to the sshd PAM module file.

Add the following line to the file to the end /etc/pam.d/sshd:

account             required                pam_time.so

time.conf

Now that PAM is configured to read time.conf we can now put in a rule. Here is an example rule from time.conf:

sshd;*;!root&fls4t&ejs3s&pgh5a;!Al0000-2400

This line is formatted such that the users listed are separated by ampersand & characters. This entry will allow the users root, fls4t, ejs3s and pgh5a are allowed access. Be sure to always include yourself and root in this rule. Failure to do so may result in everyone becoming locked out.

If we wanted to add the user ktm5j to this rule above, we would insert the string &ktm5j like this:

sshd;*;!root&fls4t&ejs3s&pgh5a&ktm5j;!Al0000-2400

Changes to this file take effect immediately, no services need to be restarted. When editing this file, be sure that you keep at least one active ssh connection until you have tested your changes. This will prevent becoming locked out if any errors are made!

  • linux_ssh_access.txt
  • Last modified: 2019/01/09 14:27
  • by ktm5j