SSH Config Generator
Generate your ~/.ssh/config file. Add multiple hosts with aliases, jump hosts, port forwarding, and cloud provider templates.
How to Use the SSH Config Generator
- Add hosts — click "+ Add Host" or choose a cloud template to start.
- Fill in the details — alias, hostname or IP, user, port, and identity file.
- Enable advanced options — expand the advanced section for ProxyJump, port forwarding, and keepalive settings.
- Copy or download — save the output as
~/.ssh/config(make sure permissions are600:chmod 600 ~/.ssh/config).
Understanding the SSH Config File
The SSH client configuration file (~/.ssh/config) is one of the most useful but underutilized tools in a developer's workflow. Instead of memorizing and typing long SSH commands like ssh -i ~/.ssh/aws-key.pem -p 2222 [email protected], you define it once in the config file and connect with just ssh webserver. The file is read top to bottom; the first matching Host block wins, and the special Host * block at the bottom applies global defaults.
Host Aliases and Wildcards
Each Host directive defines a pattern that matches when you type ssh <pattern>. You can use wildcards: Host web-* matches web-prod, web-staging, etc. Multiple patterns on the same line (space-separated) match any of them. The HostName directive specifies the actual IP or DNS name to connect to — this is separate from the alias, letting you use short memorable names for long hostnames.
Jump Hosts and ProxyJump
In many corporate and cloud environments, production servers are on private networks with no direct internet access. A bastion host (also called a jump host) sits on the boundary — it has both a public IP and access to the private network. The ProxyJump directive (introduced in OpenSSH 7.3) handles this transparently. When you run ssh private-server, SSH first connects to the bastion host, then tunnels the connection to the private server. All of this happens in one command with no manual steps. Older OpenSSH versions use ProxyCommand instead.
Local Port Forwarding
Port forwarding lets you access remote services through an encrypted SSH tunnel as if they were running locally. LocalForward 5432 db.internal:5432 means that connecting to localhost:5432 on your machine tunnels to db.internal:5432 through the SSH server. This is the standard way to access databases, internal dashboards, and admin panels that are not exposed to the internet. It eliminates the need for VPNs for development access to remote infrastructure.
Identity Files and SSH Keys
The IdentityFile directive specifies which private key to use for a host. Different cloud providers generate different keys — AWS EC2 uses .pem files, GCP uses ED25519 keys managed by gcloud, and self-managed servers typically use ED25519 or RSA keys. Storing all keys in ~/.ssh/ and referencing them by name in the config file keeps your SSH workflow organized. Always use ssh-keygen -t ed25519 for new keys — ED25519 is faster, more secure, and produces shorter key material than RSA. Combine this with the Docker Compose Generator for full infrastructure management.