SSH and Git Setup
Authenticate to GitHub using GitHub CLI
This section streamlines the authentication process to GitHub using the GitHub CLI gh
, which simplifies the SSH setup.
You can find the GitHub CLI installation instructions here.
- Run
gh auth login
to begin the authentication process. - When prompted, select SSH as the preferred protocol for Git operations.
- If you don't already have an SSH key,
gh
will prompt you to generate one. Follow the on-screen instructions to create a new SSH key. gh
will automatically add your SSH key to your GitHub account. Follow any additional prompts to complete the process.- After completing the setup, run
gh auth status
to check if you're successfully authenticated.
If you want to do it manually, check the GitHub page: Generating a new SSH key and adding it to the ssh-agent
Verify GitHub User Information (Optional)
It's good practice to ensure your Git identity is correctly set:
- Check Git Configurations: Run
git config --list
to see your Git configurations, including user name and email. - Set Git User Information If Not Set: If not already set, configure your Git user information:
git config --global user.email "you@gatech.edu"
git config --global user.name "Your Name"
Replace with your GitHub email and name.
Configuring SSH Host Aliases
It is useful to setup your ~/.ssh/config
on your host as follows:
Host pace
HostName login-phoenix.pace.gatech.edu
User your_username
Host pace-interactive
HostName atl1-1-02-007-30-1.pace.gatech.edu
User your_username
ProxyJump pace
This adds host aliases pace
and pace-interactive
.
Make sure to add your SSH key to the ~/.ssh/authorized_keys
section after logging into PACE via ssh your_username@login-phoenix.pace.gatech.edu
.
You can now access PACE using ssh pace
and it will automatically log you in.
The pace-interactive
alias will use the login node as a jump host, allowing you to run VS Code sessions on interactive sessions.
Read more about SSH config files: ssh_config(5) manual page
Add Authorized Keys to PACE
# Log into PACE
ssh pace
# Create .ssh directory if it doesn't exist
mkdir -p ~/.ssh
# Create or append to authorized_keys file
nano ~/.ssh/authorized_keys
# Paste your public key, save and exit (Ctrl+O, Enter, Ctrl+X)
# Set correct permissions
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
# Test your connection from your local machine
ssh pace
Updating pace-interactive Alias
Allocate a new interactive session on PACE. For example:
salloc --account=paceship-dsgt_clef2025 --nodes=1 --ntasks=1 --cpus-per-task=8 --mem-per-cpu=4G --time=2:00:00 --qos=inferno
Make sure to keep this terminal around. Get the hostname from the session:
$ hostname
atl1-1-02-007-30-1.pace.gatech.edu
Copy the hostname and update your ~/.ssh/config
file:
Host pace-interactive
HostName atl1-1-02-007-30-1.pace.gatech.edu
User your_username
ProxyJump pace
Then you can SSH via ssh pace-interactive
from your host machine through the terminal or VS Code.
Note that this will also allow you to port forward any services running on these nodes.
Advanced SSH Configuration
Port Forwarding for Development
Common port forwarding scenarios for research work:
# Forward Jupyter notebook (local 8888 -> PACE 8888)
ssh -L 8888:localhost:8888 pace-interactive
Working with Git on PACE
Basic Git Setup on PACE
# SSH to PACE
ssh pace
# Load Git module (if using module system)
module load git
# Configure Git if not done already
git config --global user.name "Your Name"
git config --global user.email "your.email@gatech.edu"
# Set VS Code as default editor if available
git config --global core.editor "code --wait"
# Verify configuration
git config --list
Clone and Work with Repositories
# Clone your research repository
git clone git@github.com:username/your-research-project.git
# Or clone using the GitHub CLI
gh repo clone username/your-research-project