Session 02¶
Topic 1: Interfaces¶
- terminal
- SSH π
- Zsh
- editors
- Git
- AI
Today¶
- Secure Shell (SSH)
- 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¶
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¶
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