# Permission denied

# git@gitee.com: Permission denied (publickey)

客户端存在多个 SSH-Key,一个用于 GitHub,一个用于 gitee。

针对不同的服务器未设置对应使用的私钥时,执行下面的测试命令报错:

$ ssh -T git@gitee.com
git@gitee.com: Permission denied (publickey).

How to fix?

根据需要生成多个 SSH-Key。

# for github
ssh-keygen -t rsa -C 'xxxxx@company.com' -f ~/.ssh/gitee_id_rsa
# for gitee
ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/github_id_rsa

将对应的公钥添加到服务器上。

然后,在 ~/.ssh 目录下的 config 文件中(不存在则创建),添加如下内容:

# 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

注意,指定的私钥要和上面指定的公钥相对应。

# You do not have permission push to this repository

在正确的设置好公钥后,可以正确的通过 ssh 连接服务器,但是在推送时报错。

$ git push origin master
remote: You do not have permission push to this repository
fatal: unable to access '<remote-url>': The requested URL returned error: 403

How to fix?

在 Windows 中,凭据管理器可以使你能够查看和删除用于登录网站、连接的应用程序和网络的已保存凭据。

在任务栏上的搜索框中键入“凭据管理器”,然后选择“凭据管理器控制面板”。

选择“Windows 凭据”配置凭据。

Windows accessing credential manager

点击添加普通凭证,根据要求输入相应的网络地址、用户名和密码。

# 参考