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