Student Information Processing Board @ MIT

This page was migrated from the old website and has not been manually reviewed, or is here for historical purposes. We make no guarantees that the content is up-to-date or reflects SIPB's current views. Contact sipb-www@mit.edu if anything is broken or you have other questions or feedback.

Using Athena

Intended Purpose:

  • This article will help you answer the question “how can I have a website with an MIT domain”?
  • The website you’re making is static (otherwise scripts might be a better option!)
  • To be below the level of afs-and-you

Prerequisites:

  • Familiarity with using a terminal (experimented with basic commands like cd, ls, mkdir, etc.)

Connecting to Athena

SSH (Secure Shell) allows a computer to remotely login into another computer/server while making use of adequate security features. Thankfully, most operating systems have an SSH program already built in and no additional installs are needed on your machine. You can SSH into Athena by following these steps.

Note: If your computer does not have ssh, you could also use shellinabox, an online terminal for using Athena that can be found here Though, it’s not ideal as it will log you off if you’re idle for a few minutes (which is probably not what you want when you’re following a guide like this).

First, open your OS’s respective terminal. Then enter

ssh [kerberos]@athena.dialup.mit.edu

but replacing [kerberos] with your kerberos/Athena username. So, for example, if your username is aphacker, you would type into the terminal ssh aphacker@athena.dialup.mit.edu.

If successful, ssh will tell you (on your first connection):

Host key not found from the list of known hosts.  
Are you sure you want to continue connecting (yes/no)?

Type `yes’, and now it will respond:

Host 'athena.dialup.mit.edu' added to the list of known hosts.  
aphacker's password:

Type your password and press Enter. Note, you will not see any characters appear as you type your password; this is a security feature.

Now you’ll be prompted to complete two-factor authentication via Duo.

Enter a passcode or select one of the following options:  
 1. Duo Push to XXX-XXX-1234  
 2. Phone call to XXX-XXX-1234  
 3. SMS passcodes to XXX-XXX-1234  
Passcode or option (1-3):

Type an option number and press Enter. Complete your two-factor authentication. With luck, the terminal will print a series of startup text, finally ending with a line that reads

aphacker@scrubbing-bubbles:~$

You have now been dropped into Athena! Like the terminal on your computer, you can type commands and they will execute. For example, you can type pwd and see

aphacker@scrubbing-bubbles:~$ pwd  
/afs/athena.mit.edu/user/a/p/aphacker

Serving a website from AFS

Now that you’re in Athena, you can access the files in MIT’S AFS. Right now, you are in your home directory for MIT’s AFS. There are several subdirectories in your home directory, but the important one to focus on right now is ~/www.

Files in your ~/www directory are available on the internet through a URL, specifically via the form factor of https://web.mit.edu/aphacker/www/. If you go to that URL right now though, you won’t see anything (besides an error). We can change that by populating that directory with the content that makes up a small web page.

First, cd into the www directory.

aphacker@scrubbing-bubbles:~$ cd www  
aphacker@scrubbing-bubbles:~/www$

Then, run the following command to make a file named index.html with a simple HTML5 template like so

aphacker@scrubbing-bubbles:~/www$ echo '<!DOCTYPE html><title>Hello World!</title>' > index.html

If you now visit your URL at https://web.mit.edu/aphacker/www/, you will see the web page you made! It’s a blank page with the title “Hello World!”. Note, this change is sometimes not immediate and will take a few minutes, but never hours.

You can edit the webpage you just made by running a text editor like nano or Vim.

aphacker@scrubbing-bubbles:~/www$ nano index.html

This should bring up a screen with the current contents of index.html, which you can now edit. You can read more about how to use nano elsewhere, and edit your file as you wish.

Using SCP

If you feel unready to strictly edit files via the remote shell, using a package called SCP (Secure Copy), which is bundled with SSH, might be of interest. It allows you to copy files from your computer to AFS and vice-versa.

To copy a file from your computer to AFS, open your terminal and enter a command like

scp file.txt aphacker@athena.dialup.mit.edu:~

This will copy a file called file.txt to your home directory in AFS. You’ll have to do two-factor authentication with Duo, similar to SSH.

You can read SCP’s man page (on the terminal via man scp or online at man7) or other reference sheets (like tldr-pages for more information about how to use SCP.

What next?

Additional readings

For more information about what AFS is, visit:

Tips/tricks

To use Visual Studio Code (VSC) to interact with Athena, follow these steps:

  1. In your machine’s VSC, install the “official” ssh extension
  2. SSH into Athena and use your text editor to edit into ~\.bashrc. Then, append this command at the end of the file (in a new line): find ~/.vscode-server/ -name 'vscode-remote-lock.{kerberos}.*' -delete. Here, you replace {kerberos} with your kerberos.
  3. Follow the extension’s steps for establishing a SSH connection.