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
| Option | Description | Example |
|---|---|---|
| Host | Alias for the connection | myserver |
| HostName | Actual hostname or IP address | 192.168.1.100 |
| User | Username for authentication | deploy |
| Port | SSH port number (default 22) | 2222 |
| IdentityFile | Path to the private key file | ~/.ssh/id_ed25519 |
| ProxyJump | Jump through a bastion host | bastion |
| ForwardAgent | Forward SSH agent to remote host | yes |
| ServerAliveInterval | Keepalive interval in seconds | 60 |
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