User Tools

Site Tools


spo600:spo600_servers

SPO600 Servers

Preparatory Steps

In order to gain access to these computers, you must send an SSH key to your professor using the instructions on the SPO600 Communication Tools page.

Accounts are created in batches and should be ready within a week of submitting your keys.

Available Servers

AArch64

aarch64-001

This ARMv8 / AArch64 machine is an Amazon EC2 Graviton 2 cloud system.

Critical: This machine does not currently have sufficient RAM or disk space to compile the GCC compiler. Attempting a build will exhaust memory and cause the host to crash. Please do not attempt to build GCC on aarch64-001.

You can access this system at the hostname aarch64-001.spo600.cdot.systems; using OpenSSH from the command line, you can use these arguments:

ssh username@aarch64-001.spo600.cdot.systems

aarch64-002

This machine is a Honeycomb LX2K system in the K building at Newnham campus. It has a large number of wimpy cores (16 x Cortex-A72), an NVME SSD storage system, and 32GiB RAM. Note that it is running an older version of both Linux and the GCC compiler. This system is capable of compiling GCC in about 100 minutes.

You can access this system at the hostname aarch64-002.spo600.cdot.systems; using OpenSSH from the command line, you can use these arguments:

ssh username@aarch64-002.spo600.cdot.systems

aarch64-003

This ARMv8 / AArch64 machine is an Amazon EC2 Graviton 4 cloud system with SVE2 capability, 4 cores, and 16 GiB RAM. This machine has sufficient resources to compile the GCC compiler in about 84 minutes.

You can access this system at the hostname aarch64-003.spo600.cdot.systems; using OpenSSH from the command line, you can use these arguments:

ssh username@aarch64-003.spo600.cdot.systems

x86_64

x86_64-001

This x86_64 system is a workstation/server class system (x86-64-v4 architectural level) with 64GiB RAM. It has the hostname x86-001.spo600.cdot.systems. It can be accessed using OpenSSH with these arguments:

ssh username@x86-001.spo600.cdot.systems

Simplified SSH Access

If you're using OpenSSH (the ssh client used on most Linux systems and other platforms), you can simplify ssh command lines by placing host connection details in the file ~/.ssh/config>, something like this:

 Host "aa1"
         hostname "aarch64-001.spo600.cdot.systems"
         user "YourUserID"
         
 Host "aa2"
         hostname "aarch64-002.spo600.cdot.systems"
         user "YourUserID"
         
 Host "aa3"
         hostname "aarch64-003.spo600.cdot.systems"
         user "YourUserID"
         
 Host "x86"
         hostname "x86-001.spo600.cdot.systems"
         user "YourUserID"

Once you have added these lines (inserting your user ID where appropriate) and set the permission on that file (chmod 0600 ~/.ssh/config) you can use these simplified commands to access the servers:

 ssh aa1

 ssh aa2

 ssh aa3

 ssh x86

You can similarly configure simplified access in most other SSH client programs.

Multiuser Access

Remember that these machines are multi-user systems. Use the w or who commands to see who else is using them; you can also try using the write command to communicate with another user if required.

Passwords

Your password on each of these systems has been set to a random string (different on each host). You can find out the original random password by viewing the file ~/password.txt and you can change the password with the passwd command. Your password is used for sudo access (see the next section).

Sudo Access

To perform operations which require privilege, such as installing software, use the sudo command to execute the desired instruction as the root user.

For example, to install the software packaged ncurses-devel, execute: sudo dnf install ncurses-devel

Danger! Use Superuser privilege at your Own Risk. Note that the use of the superuser account via sudo removes almost all restrictions on what you can do. It is easily possible for you to completely destroy the operating system! Take your time, double-check your commands, and if in doubt, ask. Be aware that your actions may affect other users and vice-versa.

DO NOT Build or Install Software as Root except via RPM (dnf). Do not build or install software as the root user (using sudo), except in RPM (or DEB) form using the dnf (or yum or apt) commands (as appropriate to the system). Building or installing software as root may overwrite system files and be very difficult to track down. It is OK to install software into your own directories (e.g., ~/bin or ~/local), which can be done without root privilege.

In order to use sudo, you will need to know your password. An initial random password is provided in the file ~/password.txt (note that your password will be different on each server). Feel free to change this with the passwd command – not by editing the file, which is provided only for your information!

SSH Access from Other Client Systems

If you wish to access the servers from additional computers, you can append the SSH public keys from those computers to the ~/.ssh/authorized_keys file on the target system. Alternately, you can copy the private key from one client system to another (e.g., your laptop to your desktop).

OS Versions

The current servers are both running Fedora and will be updated from time to time. The machines may not be updated at the same time, so the versions of software may vary slightly. The kernel versions may also vary between the systems because of kernel hardware support.

Backup Your Accounts

These accounts are never backed up, and the machines may fail, lose data, or be reinstalled without warning at any time. Please back up your work frequently by copying it to another system or storage device.

Common SSH Problems

With the OpenSSH client:

  1. Your ssh private key must be in your ~/.ssh directory (which must have 0700 permission) and the private key file must have 0600 permissions – no more and no less.
  2. If your SSH public key is not named ~/.ssh/id_rsa, your SSH client may not automatically find it. You can specify the identity (private key) file using the -i argument to the SSH command.}}

Debugging SSH Connection Problems

Situation 1: The SSH client asks you for a passphrase

The passphrase is the one you provided when you created your SSH keys. You must remember this passphrase in order to successfully unlock your private key. If you do not remember your passphrase, you will need to create a new pair of keys and re-send the public key to your professor:

  1. Create the keys with ssh-keygen -t ed25591
  2. Copy the public key (which by default will be named ~/.ssh/id_ed25519.pub) to a file named UserId.pub where UserId is your Seneca User ID.
  3. Attach that file to an e-mail message and send it to your professor.
Situation 2: The SSH client asks you for a password

The password is for the remote system, but the SSH client will only ask you for a password if it is unable to authenticate using your keys. If that is the case, then one of your keys is corrupted, missing, has the wrong permission, or can't be found by the SSH client.

  1. If you're using OpenSSH, try using the -i argument to tell the client which private key identity file to use: ssh -i /path/to/ssh/PrivateKey …
  2. Check the permissions on the private key and the directory holding the private key.
  3. If necessary, generate a new key and send it to your professor (see the previous section).
Getting Verbose Output

To see what the OpenSSH client program is doing, you can use the -v (verbose) argument, up to three times: ssh -vvv …

By reading through the output carefully, you can see what the OpenSSH client program is doing, and address any problems that arise (such as permission or file naming issues).

Disconnect/Reconnect Ability

The screen utility provides disconnect/reconnect capability, which is very useful for unstable network connections, long interactive operations, and changing your work location.

Other programs such as tmux provide similar capability.

For graphical disconnect/reconnect capability, consider using VNC.

spo600/spo600_servers.txt · Last modified: 2024/10/24 03:27 by chris

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki