遇到Access denied 的權限問題
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/’
解決方法
1、git的密碼修改過,但是本地沒更新。
直接登錄gitlab沒問題,但是本地免密提交有問題,直接解決方案:
#先執(zhí)行
eval `ssh-agent`
#再執(zhí)行,請檢查id_rsa的路徑正確
ssh-add ~/.ssh/id_rsa
#查詢是否成功,列表中是否有id_rsa 設置的郵箱名稱
ssh-add -l
2、確定問題,然后增加配置
① 查詢用戶信息
#查詢當前配置列表
git config --list
重點信息確認:
注意: user.name 和 user.email設置是否正確。
②如果名稱和email不對,設置名稱:
git config --global user.name "wukong.sun" # 請換成你自己的名字,除非你湊巧也叫wukong.sun
git config --global user.email "wukong.sun@xxx.com" # 同上
③ 檢查ssh-add是否鏈接正常
$ ssh-add ~/.ssh/id_rsa
Could not open a connection to your authentication agent
解決方法
#先執(zhí)行
eval `ssh-agent`
#再執(zhí)行,請檢查id_rsa的路徑正確
ssh-add ~/.ssh/id_rsa
#查詢是否成功,列表中是否有id_rsa 設置的郵箱名稱
ssh-add -l
④ 設置不要每次都輸入用戶名密碼
每次遠程操作pull/push/fetch時需要手動輸入密碼,執(zhí)行這個命令,開啟憑證助手。 注:第一次需要輸入用戶名密碼
#配置憑證助手
git config --global credential.helper store
以上應該能解決主要問題, 以下內(nèi)容為配置免密提交的方法
如果只是想驗證用戶名/密碼是否正確的,可以清除憑證先驗證,附送清除方法:慎用!慎用!慎用?。ㄇ宄?,還要走一遍④)
清除憑證助手
git config --system --unset credential.helper
除了system外,還有global、local等范圍
使用 git config --list 命令這是展示配置屬性,只要不存在credential.helper表示清除成功
3、配置免登錄git提交
① ssh-keygen 生成免密對兒
在Linux的命令行下,或Windos上Git Bash命令行窗口中(總之不要用iOS),鍵入:
ssh-keygen -t rsa -C "wukong.sun@xxx.com"
然后一路回車,不要輸入任何密碼之類,生成ssh key pair。
② 把私鑰告訴本地系統(tǒng)
#把私鑰告訴本地系統(tǒng):
ssh-add ~/.ssh/id_rsa
③ 把公鑰的內(nèi)容復制到GitLab上
#顯示ssh公鑰的內(nèi)容:
cat ~/.ssh/id_rsa.pub
兩個箭頭之間的內(nèi)容都需要。
打開GitLab網(wǎng)頁:http://gitlab.corp.xxx.com/profile/keys,點擊“Add SSH Key”,然后把剛才ssh公鑰id_rsa.pub(windows下的用戶目錄找到.ssh文件夾進去就可以看到)的內(nèi)容paste進去。不需要填title,title會自動生成。文章來源:http://www.zghlxwxcb.cn/news/detail-652442.html
要是GitLab報“不是有效的key”之類的錯誤,可能是你沒去除注意去除多余的回車符,也可能是paste之前copy的時候,沒copy最開頭的“ssh-rsa ”(有空格哈)這幾個字。文章來源地址http://www.zghlxwxcb.cn/news/detail-652442.html
到了這里,關于git權限問題解決方法Access denied fatal: Authentication failed的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!