Theo's Corner
dev / irl / thoughts
← Back
tech

SSH — what it is and why it's essential

Theo|Jun 2026|~4 min read

If you run any kind of server, SSH is probably the tool you use more than anything else. It's how you get a terminal on a remote machine securely, and once you're comfortable with it, managing servers remotely becomes second nature.

What SSH actually is

SSH stands for Secure Shell. It's a protocol that lets you connect to a remote machine over a network and run commands on it as if you were sitting right in front of it. The connection is encrypted end-to-end, so everything you send — including passwords and sensitive commands — is secure in transit.

Basic usage

Connecting to a server is one command:

ssh user@your-server-ip

That's it. You'll be prompted for a password and then you're in — full terminal access to the remote machine.

SSH keys — the right way to do it

Passwords work but SSH keys are better. You generate a key pair — a private key that stays on your machine and a public key that goes on the server. When you connect, the server checks your public key against your private key without ever transmitting the private key. It's more secure and means you never have to type a password.

ssh-keygen -t ed25519 -C "your-email"
ssh-copy-id user@your-server-ip
Once you're using SSH keys, disable password authentication on your server entirely. It massively reduces your attack surface — bots constantly try to brute force SSH passwords, but keys are practically impossible to brute force.

Config file

If you SSH into multiple servers regularly, the config file is your best friend. At ~/.ssh/config you can define shortcuts:

Host myvps
    HostName 123.456.789.0
    User root
    IdentityFile ~/.ssh/id_ed25519

Then you just type ssh myvps and you're in. No remembering IP addresses.

SCP and SFTP

SSH also powers SCP and SFTP for secure file transfers. I use SCP constantly for moving files between machines — same authentication, same encryption, just files instead of commands.