# 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](scripts.mit.edu) might be a better option!) * To be below the level of [afs-and-you](https://sipb.mit.edu/doc/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](https://athena.dialup.mit.edu/.) 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 'Hello World!' > 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](https://xkcd.com/378/). ``` 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](https://man7.org/linux/man-pages/man1/scp.1.html)) or other reference sheets (like [tldr-pages](https://tldr.ostera.io/scp) for more information about how to use SCP. ## What next? ### Additional readings For more information about what AFS is, visit: * [AFS at MIT - An Introduction](http://kb.mit.edu/confluence/display/istcontrib/AFS+at+MIT+-+An+Introduction) * [AFS and You](https://sipb.mit.edu/doc/afs-and-you/) * [AFS Locker Maintenance Guide](http://kb.mit.edu/confluence/display/istcontrib/AFS+Locker+Maintenance+Guide) ### 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](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh) 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.