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