Trending:
Software Development

GitHub SSH on Windows: single vs multi-account setup for enterprise teams

OpenSSH integration since Windows 10 simplifies GitHub authentication, but multi-account configs still trip up enterprise developers. SSH config aliases and per-repo Git identity management solve the problem. Worth noting: HTTPS with PATs remains simpler for single-account workflows.

Windows enterprise developers have two paths for GitHub authentication: SSH keys or HTTPS with Personal Access Tokens. SSH wins on security, but the setup catches people out, particularly when juggling personal and work accounts.

The Single Account Case

For one GitHub account, the process is straightforward. Generate an RSA key via ssh-keygen in PowerShell or Git Bash, add it to ssh-agent, upload the public key to GitHub. OpenSSH ships with Windows 10 and 11, eliminating the PuTTY era. Most enterprise fleets run this natively now.

Test with ssh -T git@github.com. Clone repos using git@github.com:username/repo.git instead of HTTPS. The workflow becomes: generate key, add to agent, upload to GitHub, clone. Done.

Multi-Account Complexity

The real friction appears with multiple accounts. Personal and work GitHub accounts on the same machine require separate SSH keys and a config file at ~/.ssh/config with host aliases. Example:

Host github.com-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_work

Clone work repos using git@github.com-work:org/repo.git. The alias tells SSH which key to use. Inside each repo directory, override Git identity with git config user.email work@example.com to keep commit attribution clean.

Common failures: CRLF line endings in config files (use LF), wrong file names (config.txt instead of config), ssh-agent not running on terminal startup. Git Bash users need ~/.bash_profile to auto-load keys after restart.

The Alternative View

Some teams skip SSH entirely, using HTTPS with PATs. Simpler for single accounts, avoids key rotation headaches, works identically across Windows/Mac/Linux. The trade-off: PATs expire, require secure storage, and lack the "set once, forget" nature of SSH.

For APAC enterprises managing hybrid development teams, SSH remains standard for secure Git workflows. ED25519 keys provide better security than RSA. GitHub hosts 420M+ repositories; getting authentication right at scale matters.

The pattern is clear: single account SSH takes 10 minutes. Multi-account setups take longer but solve real workflow problems. The config file is doing the heavy lifting. Get that right, everything else follows.