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/gitlabif needed, set file permissions (non-Windows OS):
chmod 400 ~/.ssh/configCreate Git SSH key like:
ssh-keygen -t ed25519 -f ~/.ssh/githubFor 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-personalThen clone the repository like:
git clone github-work:username/repo.git
# or
git clone github-personal:username/repo.gitTo 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