trevorblackman.dev
← Back to tools

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.

Everything runs in this browser. Your hosts and keys are saved to this browser's local storage so they survive a refresh; project URLs are throwaway and reset on reload. Nothing is ever sent anywhere.

Host Aliases

·

New Host Alias

Git
Servers

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.

Key type

Recommended. Short, fast, and accepted by GitHub, GitLab, Bitbucket, and every current OpenSSH server.

Generate the key pair
ssh-keygen -t ed25519 -f id_ed25519

You'll be prompted for a passphrase. Leave it empty for an unattended key, or set one and let ssh-agent hold it.

Print the public key to upload
cat id_ed25519.pub

Paste 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.