SSH Config Generator

Generate ~/.ssh/config entries visually. Build SSH config files with host aliases, jump hosts, and identity files.

Client-side only — nothing leaves your browser

Host Entry 1
Advanced options

Save this to ~/.ssh/config

What is SSH Config?

The SSH config file (~/.ssh/config) lets you define shortcuts and default settings for SSH connections. Instead of typing long commands like ssh -i ~/.ssh/id_work -p 2222 [email protected], you can define a host alias and simply run ssh staging. The config file supports host-specific settings for identity files, jump hosts, port forwarding, and dozens of other options.

SSH Config Options Reference

OptionDescriptionExample
HostAlias for the connectionmyserver
HostNameActual hostname or IP address192.168.1.100
UserUsername for authenticationdeploy
PortSSH port number (default 22)2222
IdentityFilePath to the private key file~/.ssh/id_ed25519
ProxyJumpJump through a bastion hostbastion
ForwardAgentForward SSH agent to remote hostyes
ServerAliveIntervalKeepalive interval in seconds60

Frequently Asked Questions

What is the difference between Host and HostName in SSH config?
Host is the alias or shortcut you type after 'ssh' on the command line (e.g., 'ssh myserver'). HostName is the actual IP address or domain name that SSH connects to. Think of Host as a label and HostName as the real address. You can set Host to anything you want, like 'prod' or 'staging', while HostName must be a valid IP or hostname that resolves to your server.
Where is the SSH config file located?
The per-user SSH config file is located at ~/.ssh/config on Linux and macOS. On Windows with OpenSSH, it's at C:\Users\YourName\.ssh\config. There's also a system-wide config at /etc/ssh/ssh_config (note: ssh_config for the client, sshd_config for the server). If the file doesn't exist, you can create it manually. Make sure the .ssh directory has 700 permissions and the config file has 600 permissions.
How do I use a jump host in SSH config?
Use the ProxyJump directive to connect through a bastion/jump host. First define the jump host, then reference it in your target host's config: Host bastion HostName bastion.example.com User admin Host internal-server HostName 10.0.1.50 User deploy ProxyJump bastion Now 'ssh internal-server' will automatically hop through the bastion host. You can chain multiple jumps: ProxyJump bastion1,bastion2.
What permissions should the SSH config file have?
The SSH config file should have 600 permissions (read/write for owner only), and the ~/.ssh directory should have 700 permissions. Set them with: chmod 600 ~/.ssh/config and chmod 700 ~/.ssh. If permissions are too open, SSH will refuse to use the config file and may show a warning. Private key files should also be 600, and public keys can be 644.
Can I use multiple SSH keys for different hosts?
Yes, use the IdentityFile directive in each Host block to specify different keys: Host github.com IdentityFile ~/.ssh/id_ed25519_personal Host github-work HostName github.com IdentityFile ~/.ssh/id_ed25519_work This lets you use separate keys for personal and work accounts, different servers, or different security levels. You can also add IdentitiesOnly yes to prevent SSH from trying other keys.

Related Tools

Need to manage SSH connections?

SSH Workbench lets you connect, browse files, and manage servers visually.

Try SSH Workbench Free