Git with SSH
Verbosity commands
Dos
set GIT_SSH_COMMAND=ssh -vvv
git clone ssh://bithucket/repo
PowerShell
$env:GIT_SSH_COMMAND="ssh -vv"
git clone ssh://bithucket/repo
Bash
GIT_SSH_COMMAND="ssh -vv" git clone ssh://bitbucket/repo
Multiple keys per host
https://stackoverflow.com/a/38454037
This is an issue if you have many keys with various permissions that are being used on one machine.
The previous answers have properly explained the way to create a configuration file to manage multiple ssh keys. I think, the important thing that also needs to be explained is the replacement of a host name with an alias name while cloning the repository.
Suppose, your company's GitHub account's username is abc1234. And suppose your personal GitHub account's username is jack1234
And, suppose you have created two RSA keys, namely id_rsa_company and id_rsa_personal. So, your configuration file will look like below:
# Company account
Host company
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_company
# Personal account
Host personal
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_personal
Now, when you are cloning the repository (named demo) from the company's GitHub account, the repository URL will be something like:
Repo URL: git@github.com:abc1234/demo.git
Now, while doing git clone
, you should modify the above repository URL as:
git@company:abc1234/demo.git
Notice how github.com is now replaced with the alias "company" as we have defined in the configuration file.
Similary, you have to modify the clone URL of the repository in the personal account depending upon the alias provided in the configuration file.