问题描述
- git push 报错:
git@gitcode.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
- ssh -T git@gitcode.com 报错:git@gitcode.com: Permission denied (publickey).
前置操作
window11
- 已在本地生成了ssh key ,自定义了路径:
ssh-keygen -t rsa -C "youremail@example.com" -f ~/.ssh/id_rsa_gitcode
- 已将pub key 添加到了 gitcode.com
- 已将key 添加到本地:
ssh-add ~/.ssh/id_rsa_gitcode
- 已启动 ssh agent 和 ssh server: win 搜索 服务 ,找到服务并设置自启动
原因分析
本机有多个ssh key
解决办法
在 ~/.ssh 中添加一个文件 config(无后缀),内容如下:
# git@gitcode.com:xx/xx.git
Host gitcode.com
User 自定义1
HostName gitcode.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitcode
# git@gitlabxx.xx.cn:xx/xx.git
Host gitlabxx.xx.cn
User 自定义2
HostName gitlabxx.xx.cn
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab
再次git push 成功!
注意事项:
- Host 别名 :别名信息最简单的是git@web:xx/xx.git中的web
- HostName:要登录主机的主机名,真实的域名地址
- User:登录名
ps: 该写法可能有安全隐患,暂未查到原因
因为在 ssh -T git@gitcode.com
会报错:
ssh -T git@gitcode.com
Bad permissions. Try removing permissions for user: \\Everyone (S-1-1-0) on file C:/Users/dell/.ssh/config.
Bad owner or permissions on C:\\Users\\dell/.ssh/config
参考
git权限被拒绝(已添加公钥) 解决办法,亲测有效
Git 提示 Permission denied (publickey),如何才能解决?
windows下管理多个ssh-key,登录不同git账号