Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Appendix

Configuring SSH authentication with GitHub (on the cluster)

To git clone, pull, and push the workshop repository (and your own repos) from the cluster, GitHub needs to recognize the machine you’re on. The cleanest way is an SSH key generated on the cluster and registered with your GitHub account. Once set up, Git operations to GitHub work without passwords or tokens.

🧰 - Don’t confuse the two SSH keys in play:

  1. Laptop → cluster - lets you log in to the cluster (covered in §3; DSI requires this).

  2. Cluster → GitHub - what this appendix sets up, so the cluster can talk to GitHub.

They are separate keys with separate purposes. The steps below are run while logged into the cluster.

1. Generate a key on the cluster

Log into the cluster, then create an ed25519 key (use the email tied to your GitHub account):

ssh-keygen -t ed25519 -C "your_github_email@example.com"

Press Enter to accept the default location (~/.ssh/id_ed25519). You may set a passphrase for extra security, or leave it empty for convenience.

2. Set correct permissions

SSH refuses to use keys with loose permissions:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

3. Start the SSH agent and add the key

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

🧰 - The agent lives only for your current session. If a later session prompts for the key, just re-run these two lines.

4. Copy your public key

Print the public key and copy the entire line (it begins with ssh-ed25519):

cat ~/.ssh/id_ed25519.pub

🧰 - Only ever share the .pub (public) key. Never copy or send id_ed25519 (the private key).

5. Add the key to GitHub

  1. Go to GitHub → Settings (top-right profile menu).

  2. Select SSH and GPG keys.

  3. Click New SSH key.

  4. Give it a recognizable Title (e.g. UChicago cluster) so you can revoke it later.

  5. Paste the public key into Key.

  6. Click Add SSH key.

6. Test the connection

ssh -T git@github.com

The first time, accept the host fingerprint by typing yes. Success looks like:

Hi <your-username>! You've successfully authenticated, but GitHub does not provide shell access.

(That message is expected - GitHub doesn’t give a shell.)

7. Clone (or switch) using the SSH URL

Clone with the SSH form of the URL:

git clone git@github.com:chicago-aiscience/workshop-hpc-2026-sep.git

If you already cloned over HTTPS and want to switch that repo to SSH:

cd workshop-hpc-2026-sep
git remote set-url origin git@github.com:chicago-aiscience/workshop-hpc-2026-sep.git
git remote -v      # confirm it now shows git@github.com:...

Troubleshooting

References and further reading

The resources below informed the workshop and are good next reads if you want to go deeper. Each entry says what the resource covers and where in the series it applies. (The official RCC, DSI, and SLURM documentation is also linked inline throughout the lessons.)

SLURM and job management

Errors, exit codes, and troubleshooting

Storage, scheduling policy, and checkpointing

Parallelism and scientific workflows

Reproducibility, determinism, and provenance

AI + HPC and workload-aware computing

Resources linked to in the workshop

Every external link that appears in the lesson content, grouped by where it is used. A handful of these also appear under References and further reading above - that section is for background reading, this one is a lookup for “what was that link in Lesson 3?”.

Used throughout the series

Lesson 0: HPC Introduction

Lesson 1: Getting Started

Accounts

Logging in

Scheduler and partitions

Lesson 2: Data Management

Lesson 3: Errors and Monitoring

SLURM command references (all SchedMD)

Monitoring and profiling

Errors and interruptions

Lesson 4: Building Workflows

Lesson 5: Reproducibility and Checkpointing

References
  1. Sandve, G. K., Nekrutenko, A., Taylor, J., & Hovig, E. (2013). Ten Simple Rules for Reproducible Computational Research. PLoS Computational Biology, 9(10), e1003285. 10.1371/journal.pcbi.1003285
  2. Daly, J. T. (2006). A higher order estimate of the optimum checkpoint interval for restart dumps. Future Generation Computer Systems, 22(3), 303–312. 10.1016/j.future.2004.11.016
  3. Benoit, A., Du, Y., Herault, T., Marchal, L., Pallez, G., Perotin, L., Robert, Y., Sun, H., & Vivien, F. (2022). Checkpointing à la Young/Daly: An Overview. Proceedings of the 2022 Fourteenth International Conference on Contemporary Computing, 701–710. 10.1145/3549206.3549328