赞
踩
git pull 代码 或者 git push 时,遇到 Access denied问题:
$ git pull
remote: HTTP Basic: Access denied
fatal: Authentication failed for ‘http://gitlab.corp.xxxx.com/yyyy/xxxx.git/’
直接登录gitlab没问题,但是本地免密提交有问题,直接解决方案:
#先执行
eval `ssh-agent`
#再执行,请检查id_rsa的路径正确
ssh-add ~/.ssh/id_rsa
#查询是否成功,列表中是否有id_rsa 设置的邮箱名称
ssh-add -l
#查询当前配置列表
git config --list
重点信息确认:
注意: user.name 和 user.email设置是否正确。
git config --global user.name "wukong.sun" # 请换成你自己的名字,除非你凑巧也叫wukong.sun
git config --global user.email "wukong.sun@xxx.com" # 同上
$ ssh-add ~/.ssh/id_rsa
Could not open a connection to your authentication agent
解决方法
#先执行
eval `ssh-agent`
#再执行,请检查id_rsa的路径正确
ssh-add ~/.ssh/id_rsa
#查询是否成功,列表中是否有id_rsa 设置的邮箱名称
ssh-add -l
每次远程操作pull/push/fetch时需要手动输入密码,执行这个命令,开启凭证助手。 注:第一次需要输入用户名密码
#配置凭证助手
git config --global credential.helper store
以上应该能解决主要问题, 以下内容为配置免密提交的方法
如果只是想验证用户名/密码是否正确的,可以清除凭证先验证,附送清除方法:慎用!慎用!慎用!(清除之后,还要走一遍④)
清除凭证助手
git config --system --unset credential.helper
除了system外,还有global、local等范围
使用 git config --list 命令这是展示配置属性,只要不存在credential.helper表示清除成功
在Linux的命令行下,或Windos上Git Bash命令行窗口中(总之不要用iOS),键入:
ssh-keygen -t rsa -C "wukong.sun@xxx.com"
然后一路回车,不要输入任何密码之类,生成ssh key pair。
#把私钥告诉本地系统:
ssh-add ~/.ssh/id_rsa
#显示ssh公钥的内容:
cat ~/.ssh/id_rsa.pub
两个箭头之间的内容都需要。
打开GitLab网页:http://gitlab.corp.xxx.com/profile/keys,点击“Add SSH Key”,然后把刚才ssh公钥id_rsa.pub(windows下的用户目录找到.ssh文件夹进去就可以看到)的内容paste进去。不需要填title,title会自动生成。
要是GitLab报“不是有效的key”之类的错误,可能是你没去除注意去除多余的回车符,也可能是paste之前copy的时候,没copy最开头的“ssh-rsa ”(有空格哈)这几个字。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。