ssh, scp & rsync: Remote Access from the Command Line
Reach remote machines with confidence — connect over SSH, run commands and tunnels, set up keys and an SSH config, then copy and sync files with scp and rsync.
Every server you'll ever touch is one SSH connection away, and the command line is where that connection lives. This course starts at a bare shell and builds real fluency one small step at a time: connecting and trusting a host key, running remote commands, generating and installing keys so you never type a password again, and shaping an SSH config that turns long commands into short aliases. From there we add the moves that make SSH feel like a superpower — port forwarding, jump hosts, agent forwarding — and finish with copying and syncing files using scp and rsync, ending on a real deploy. Setting something up and using it are taught as separate steps, so each idea lands on its own.
What you'll build
- Connect over SSH and trust host keys safely
- Run remote commands and open tunnels
- Generate ed25519 keys and install them with ssh-copy-id
- Turn long connections into short aliases with an SSH config
- Copy files with scp and sync trees with rsync
- Combine the tools into a real command-line deploy
Contents
- Check your tools
- Connect for the first time
- Look around, then leave
- Run a command without staying
- Reach a non-standard port
- Generate a key pair
- Look at the public half
- Install the key on the server
- Connect with no password
- Start an agent
- Add your key to the agent
- See what the agent holds
- Write a config
- Connect by alias
- Point at a specific key
- See why a connection behaves
- Find a host's stored key
- Forget a changed key
- Forward a local port
- Forward a port the other way
- Hop through a jump host
- Forward your agent — carefully
- Copy a file up
- Copy a file down
- Copy a whole directory
- Copy over a non-standard port
- Sync a directory with rsync
- Preview before you sync
- Make the destination match exactly
- Watch a large transfer
- Choose the transport
- Leave things out
- Resume an interrupted transfer
- A real deploy in one line
- Make it your own