Skip to content

Session 02

Topic 1: Interfaces

  • terminal
  • SSH πŸ‘ˆ
  • Zsh
  • editors
  • Git
  • AI

Today

  1. Secure Shell (SSH)
  2. Z shell (Zsh)

Secure Shell (SSH)

Why bother?

connect to any computer anywhere on Earth

… that runs a Linux based operating system 🐧

Where data science really runs

your laptop is for:

  • prototyping
  • debugging
  • small experiments

real work happens on:

  • cloud servers (AWS, GCP, Azure)
  • GPU machines / data centers
  • company and university clusters
  • company data platforms

β†’ SSH is the industry standard how you access all of it

SSH Is Everywhere

you will use SSH to:

  • train models on remote GPUs
  • run long experiments overnight
  • access production servers
  • debug pipelines
  • work with distributed teams

if you work in:

  • data science
  • machine learning
  • AI engineering
  • research
  • DevOps

What you can do with SSH

SSH (Secure Shell) is a protocol that allows you to:

  • log into another computer over a network
    β†’ encrypted, authenticated
  • execute commands remotely
  • transfer files
  • tunnel other services (advanced)

in one sentence:

β†’ SSH is a secure way to open a terminal on another machine and work β€œas if it were local”

Terminal > Web UI

web dashboards are often:

  • slow
  • limited
  • click-heavy
  • hard to automate

SSH gives you:

  • speed
  • full control
  • scriptability
  • reproducibility

πŸ“ˆ productivity scales with the terminal

Mental model

when you run:

ssh username@hostname
  • SSH finds the remote machine (hostname)
  • verifies its identity (host keys)
  • authenticates you (username & password/key)
  • starts a shell on the remote machine
  • connects your terminal to that shell

🧠 feels local, but it’s remote

⚠️ you’re not on your laptop anymore

Basic set up and SSH usage

wiki β†’ SSH

less wiki/ssh.md

Never use passwords with SSH - use SSH keys!

ssh-keygen -t ed25519  # will create a key pair in ~/.ssh
                       # you will run this once per machine
  • accept the default file name: press <Enter> key
  • use a passphrase, then repeat it

Using SSH: SSH into Matrix @ VT-Math

ssh vt-username@matrix.math.vt.edu
# on first connection, SSH asks:
# "Are you sure you want to continue connecting?"

What SSH knows

what are the files in the .ssh directory

ls ~/.ssh

typical contents:

id_ed25519      # private key πŸ” - never share!
id_ed25519.pub  # public key - copied to remote machine
authorized_keys # who can log in from the outside
known_hosts     # trusted servers
config          # connection shortcuts

Productivity boost: SSH config

instead of

ssh isolde@matrix.math.vt.edu

you can write

ssh matrix
Demo

set up an SSH configuration to simplify connecting to Matrix

nano ~/.ssh/config

Example: SSH configuration (minimal & useful)

~/.ssh/config:

Host matrix
    HostName matrix.math.vt.edu
    User alice

That’s it.

Key Takeaways - SSH

  • πŸ–₯️ remote productivity
    real compute: servers, GPUs, clusters
  • 🏭 industry standard
    used daily in data science & ML jobs
  • 🧱 foundation skill
    enables scale, automation, parallelism
  • πŸ” keys > passwords
    secure, fast, professional
  • ⚑ small setup, big payoff
    ~/.ssh/config = daily time saved

Z shell (Zsh)

Zsh - why bother?

πŸ’¬

  • a modernized, fast shell
  • plugins (Git status in prompt, autocompletion)
  • themes, clean informative visuals
  • many shortcuts and productivity improvements

Zsh and Oh My Zsh

wiki β†’ Zsh

less wiki/zsh.md
Hands-on (on Matrix)
  • set Zsh as default shell
  • install Oh My Zsh
  • customize Oh My Zsh theme and plugins

Key takeaways - Zsh

  • ⚑ smart autocompletion
    commands, flags, paths, Git branches
  • 🎨 visual feedback
    colors, prompts, Git status
  • 🧭 fewer mistakes
    suggestions when you mistype, safer defaults

β†’ small features, massive time savings

Looking ahead

  • beautiful terminal β†’ next: beautiful editor
  • edit code at the speed of thought

Prepare for the next session 🌱

sessions/03-todo