SSH Setup

This guide covers how to configure SSH access to the Odin HPC cluster.

Prerequisites

  • Your SSH private key (corresponding to the public key in users.yaml)
  • VPN connection (if required)

SSH Key Setup

  1. Save your private key to ~/.ssh/ (e.g., ~/.ssh/id_rsa or ~/.ssh/id_ed25519)

  2. Set proper permissions:

    chmod 600 ~/.ssh/id_rsa  # or your key filename
    

SSH Config Setup

Add the following to your ~/.ssh/config file. Replace YOUR_USERNAME with your username from users.yaml and YOUR_PRIVATE_KEY with the path to your private key:

Host jump-host
  HostName jump.odin.navify.com
  User YOUR_USERNAME
  IdentityFile YOUR_PRIVATE_KEY
  ForwardAgent yes
  UserKnownHostsFile ~/.ssh/known_hosts.odin
  StrictHostKeyChecking accept-new

Host login1
  HostName login1.odin.cluster.local
  User YOUR_USERNAME
  IdentityFile YOUR_PRIVATE_KEY
  ProxyJump jump-host
  ForwardAgent yes
  UserKnownHostsFile ~/.ssh/known_hosts.odin
  StrictHostKeyChecking accept-new

Host login2
  HostName login2.odin.cluster.local
  User YOUR_USERNAME
  IdentityFile YOUR_PRIVATE_KEY
  ProxyJump jump-host
  ForwardAgent yes
  UserKnownHostsFile ~/.ssh/known_hosts.odin
  StrictHostKeyChecking accept-new

Host data-manager-linux
  HostName data-manager-linux.odin.cluster.local
  User YOUR_USERNAME
  IdentityFile YOUR_PRIVATE_KEY
  ProxyJump jump-host
  ForwardAgent yes
  UserKnownHostsFile ~/.ssh/known_hosts.odin
  StrictHostKeyChecking accept-new

Host data-manager-windows
  HostName data-manager-windows.odin.cluster.local
  User Administrator
  IdentityFile YOUR_PRIVATE_KEY
  ProxyJump jump-host
  ForwardAgent yes
  UserKnownHostsFile ~/.ssh/known_hosts.odin
  StrictHostKeyChecking accept-new

Note: For data-manager-windows, the SSH user is always Administrator.

Why Use a Separate known_hosts File?

  • AWS instances get new host keys when restarted or recreated
  • Using ~/.ssh/known_hosts.odin isolates Odin infrastructure from your main known_hosts
  • StrictHostKeyChecking accept-new accepts new keys automatically but warns on changes
  • If you see host key warnings after instance restarts, simply delete the file:
    rm ~/.ssh/known_hosts.odin
    
  • This approach is more secure than disabling host key checking entirely

Starting SSH Agent

Start your SSH agent and add your key before connecting:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa  # or your key filename

Connecting

With the SSH config in place, you can connect using simple commands:

# Connect to jump host
ssh jump-host

# Connect to login nodes (recommended for interactive work)
ssh login1
ssh login2

# Connect to data managers
ssh data-manager-linux
ssh data-manager-windows

Troubleshooting

Permission Denied

  1. Verify your key permissions: ls -la ~/.ssh/
  2. Ensure your public key is in users.yaml
  3. Check that the user sync workflow has been run

Host Key Changed Warning

# Clear the known hosts file for Odin
rm ~/.ssh/known_hosts.odin

Cannot Resolve Hostname

  • Ensure VPN is connected
  • Test DNS resolution from jump host:
    ssh jump-host "nslookup login1.odin.cluster.local"
    

Next Steps