Git SSH Public key Authentication
Git hosting services including GitLab and GitHub can use Git over SSH for enhanced security.
Setup the file “~/.ssh/config” for Git SSH Public Key authentication like:
Host *
IdentitiesOnly yes
PubKeyAuthentication yes
Port 22
Host gist.github.com
User git
IdentityFile ~/.ssh/github
Host github.com
User git
IdentityFile ~/.ssh/github
Host gitlab.com
User git
IdentityFile ~/.ssh/gitlab
if needed, set file permissions (non-Windows OS):
chmod 400 ~/.ssh/config
Create Git SSH key like:
ssh-keygen -t ed25519 -f ~/.ssh/github
For speed, consider Git pull over HTTPS, Git push over SSH.
Multiple accounts on same Git service
To use Git with SSH and multiple public keys e.g. for same Git server with multiple accounts, setup the file “~/.ssh/config” like:
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/github-work
Host github-personal
HostName github.com
User git
IdentityFile ~/.ssh/github-personal
Then clone the repository like:
git clone github-work:username/repo.git
# or
git clone github-personal:username/repo.git
To set the username and email distinct for this repo if desired, from that repo directory:
git config user.name "Your Name Here"
git config user.email your@email.invalid