Git配置多个SSH-Key

遇到的问题

在用SSH方式克隆仓库时报错:

git@gitee.com: Permission denied (publickey).
fatal: Could not read from remote repository.

检查电脑上有没有钥匙

用户目录下有一个叫 .ssh 的文件夹。如果有这个文件夹,检查这个文件夹里是否有钥匙,如果没有就生成钥匙。如果有就拷贝到账户设置里。

如何生成钥匙

需要用到 ssh-keygen 这个命令(可以通过输入 ssh-keygen --help 来查看用法)。

在终端(或命令行窗口)里输入 ssh-keygen -t rsa -C "your_email@xxx.com" -f ~/.ssh/filename1 就可以了。

邮箱和文件名可以自己改,输入命令后一直回车就可以了,不用输入密码。

我发现邮箱不用双引号括起来也没关系

如何生成多个钥匙

如果想要同时使用gitee和github的仓库,可以这样做:

ssh-keygen -t rsa -C 'aaa@bbb.com' -f ~/.ssh/gitee_id_rsa
ssh-keygen -t rsa -C 'ccc@ddd.com' -f ~/.ssh/github_id_rsa

在本地配置钥匙

在 ~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)

# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa

在远程配置钥匙

把你刚生成的公钥拷贝到 github 账号(或 gitee 账号)的 SSH 设置里。

测试钥匙

ssh -T git@gitee.com
ssh -T git@github.com