SSH Config Generator
Build a clean ~/.ssh/config from a simple form - aliases, hostnames, users, ports, keys, and jump hosts. Connect with "ssh myserver" instead of memorizing IPs. Everything stays in your browser.
Host myserver HostName 192.0.2.10 User deploy IdentityFile ~/.ssh/id_ed25519Save this to ~/.ssh/config, then run chmod 600 ~/.ssh/config. Now ssh myserver just works.
What is the SSH config file?
The SSH config file at ~/.ssh/config lets you save per-host connection settings so you never have to retype them. Instead of ssh -i ~/.ssh/id_ed25519 -p 2222 deploy@192.0.2.10, you define the host once and connect with a short alias: ssh myserver.
It is the cleanest way to manage a handful of servers from the command line - aliases, the right key per host, custom ports, and jump hosts all live in one readable file.
How to use this generator
- Enter a Host alias (what you will type after
ssh) and the real HostName. - Add the user, port, and IdentityFile (private key) as needed - blank fields are left out.
- Connecting through a bastion? Set ProxyJump. Need keepalives or strict checking? Open Advanced.
- Click "Add another host" to manage your whole fleet in one file.
- Copy the generated config into
~/.ssh/configand set its permissions (below).
Where the file lives and how to secure it
On macOS and Linux the per-user file is ~/.ssh/config; create the ~/.ssh directory first if it does not exist. On Windows with OpenSSH it is C:\Users\you\.ssh\config. System-wide defaults live in /etc/ssh/ssh_config.
SSH is strict about permissions. After saving, lock the file down so only you can read it: chmod 600 ~/.ssh/config and chmod 700 ~/.ssh. Not sure what those numbers mean? Our chmod calculator explains and builds the exact command.
Use a different key per host
A common reason to use a config file is mapping the right private key to each server. Set IdentityFile per host, and enable IdentitiesOnly (under Advanced) so SSH offers only that key instead of every key your agent holds - which avoids "too many authentication failures" errors on servers with strict limits.
Common SSH config directives
| Directive | What it does |
|---|---|
| Host | The alias you type after ssh - for example "ssh myserver". Supports wildcards like *.example.com. |
| HostName | The real hostname or IP address the alias connects to. |
| User | The login username, so you no longer need to type user@host. |
| Port | The SSH port, when it is not the default 22. |
| IdentityFile | Path to the private key used to authenticate with this host. |
| ProxyJump | A bastion / jump host to route through before reaching this host. |
| ForwardAgent | Forwards your local SSH agent to the remote host. Use only with trusted hosts. |
| ServerAliveInterval | Seconds between keepalive packets, to stop idle connections from dropping. |
| StrictHostKeyChecking | How strictly to verify the host key: ask, accept-new, yes, or no. |
| Compression | Compresses the connection. Can help on slow links; usually left off on fast ones. |
| IdentitiesOnly | Use only the key named in IdentityFile, ignoring others the agent offers. |
Frequently asked questions
Related developer tools
Your whole fleet, without editing a config file.
CtrlOps stores every server as a named host with tags and the right key attached - one click to connect, no IP spreadsheets, and your credentials encrypted on your own machine.
✓ Start instantly·✓ No credit card·✓ No sneaky autorenewals

