SSH Config Generator
Juggling servers, jump hosts, and multiple GitHub, GitLab, or AWS accounts with different SSH keys? Describe each host and key below to generate a ready-to-paste ~/.ssh/config, plus the copy/paste commands to connect to a server or point a project at the right alias and commit identity.
Host Aliases
New Host Alias
Full ~/.ssh/config
Generate a new SSH key›
Creates the key pair in whatever directory you run it from, so cd into the folder you want first (for example ~/.ssh/github/keys). The command is identical in bash and Windows PowerShell.
Recommended. Short, fast, and accepted by GitHub, GitLab, Bitbucket, and every current OpenSSH server.
ssh-keygen -t ed25519 -f id_ed25519You'll be prompted for a passphrase. Leave it empty for an unattended key, or set one and let ssh-agent hold it.
cat id_ed25519.pubPaste this output into GitHub, GitLab, or the server's authorized_keys. Never share the file without the .pub extension.
Point a host's IdentityFile at the private key's full path — for example ~/.ssh/github/keys/id_ed25519. On Linux/macOS, tighten the permissions: chmod 600 id_ed25519.
Import an existing ~/.ssh/config›
Paste your current config below. Host, HostName, User, Port, IdentityFile, and IdentitiesOnly are read into cards; comments and other directives are ignored. Each host is labelled a git host or a server based on its user and hostname — flip the toggle if a guess is wrong. Commit identity and project URLs aren't part of an SSH config, so add those after importing.