今天使用gitlab拉取代码突然提示 git@gitlab.xxx.com: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
以为是ssh公钥没有配置好,遂又进行了一番配置,实际上并不是这个问题造成的,但还是想记录一下步骤,以免下次配置时又是一番搜索
查看是否进行过全局设置 git config --global --list
,如果已经设置过会显示你的邮箱和名字
$ git config --global --list core.autocrlf=false core.askpass= credential.https://gitee.com.provider=generic safe.directory=D:/project/biotemed safe.directory=D:/project/visual-list safe.directory=D:/WebProject/vue3-demo url.https://.insteadof=git:// user.email=xxxxxxxxxx@outlook.com user.name=xxx
清除设置
$ git config --global --unset user.name "你的名字" $ git config --global --unset user.email "你的邮箱"
找到.ssh文件夹,一般都是在C盘里,C:\Users\Administrator.ssh,打开bash终端,输入以下命令生成密钥文件
$ cd C:\Users\Administrator\.ssh // 1.gitlab $ ssh-keygen -t rsa -C "你的gitlab邮箱" -f id_rsa_gitlab -C "GitlabAccount" // 1.gitee $ ssh-keygen -t rsa -C "你的gitee邮箱" -f id_rsa_gitee -C "GiteeAccount"
期间会要求输入密码,不用输入,直接敲三下回车即可
生成之后.ssh文件夹下会有中间四个文件
然后创建config文件,注意没有后缀名
// 把第一行和第二行修改成自己公司的gitlab地址 # gitlab Host gitlab.xxxx.com HostName gitlab.xxxx.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_gitlab User git # gitee Host gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_gitee User git
gitlab:
找到 id_rsa_gitlab.pub 文件,打开复制其中内容,然后粘贴到gitlab上添加SSH密钥
gitee:
找到 id_rsa_gitee.pub 文件,打开复制其中内容,然后粘贴到gitee上添加SSH密钥,gitee点击确认后需要输入密码
Gitee 测试
$ ssh -T git@gitee.com
$ ssh -T git@gitee.com Warning: Permanently added the ECDSA host key for IP address '180.97.125.228' to the list of known hosts. Hi fengmi! You've successfully authenticated, but GITEE.COM does not provide shell access.
显示successfully,即配置成功
GitLab 测试
git@git.xxxxcn 是gitlab的仓库地址
$ ssh -T git@git.xxxx.cn
显示welcome to gitlab,即配置成功
另外
我这里测试gitlab 提示,并没有成功,但是不影响使用http的方式,有时间遇到gitlab提示Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
,也有可能是使用ssh方式拉取的,换成http就可使用
Administrator@DESKTOP-7CIE2UQ MINGW64 ~/.ssh $ ssh -T git@git.xxxx.com ssh: Could not resolve hostname git.xxxx.com: Name or service not known