鍍金池/ 問答/Linux  HTML/ git push提示Permission denied (publickey)

git push提示Permission denied (publickey)

環(huán)境:

  • Windows 10系統(tǒng);

我有一個github.com賬號,一個gitlab.com賬號,在Windows系統(tǒng)上的配置如下:

clipboard.png

其中rxwangwb_rsa是github的私鑰,gitlab_rxwangwb_rsa是gitlab的私鑰。config文件的內(nèi)容如下:

#default github
Host github.com
 HostName github.com
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/rxwangwb_rsa 
Host gitlab
 HostName gitlab.com
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/gitlab_rxwangwb_rsa

我的使用情形,github的是公共倉庫,而gitlab是私人倉庫。
我在gitlab push代碼時,被拒絕:

clipboard.png

接下來我執(zhí)行如下操作:

clipboard.png

這樣就提交成功了,但是下次提交代碼時還是會被拒絕,每次都需要eval(ssh-agent)->ssh-add -> git push這個樣操作,請問怎么解決這個問題?

回答
編輯回答
汐顏

git push 的數(shù)據(jù)協(xié)議有兩種方式:sshhttp。

題主可以先試一下 http 方式看能否成功。只需在 git config 中修改 remote 地址為 http 方式即可。

如果可以的話,猜測是 gitlab 的 ssh 服務(wù)端(應(yīng)該有個 known_hosts 文件)沒有保存你的客戶端公鑰文件,導致每次連接都得 ssh-add。

2017年4月11日 07:47
編輯回答
苦妄

This is a better approach hotmail sign in

2018年7月3日 12:43
編輯回答
神經(jīng)質(zhì)

設(shè)置 SSH keys 試下 https://github.com/settings/keys
gitlab 也是差不多的設(shè)置
這樣應(yīng)該是比較好的處理方式

2017年10月7日 14:11
編輯回答
祉小皓

這個問題已經(jīng)解決,將執(zhí)行的命令加入到Git安裝目錄的D:\Programs\Git\etc\bash.bashrc即可,

# add github_cobcmw
eval $(ssh-agent)
ssh-add ~/.ssh/rxblog_rsa

具體參考這里:解決Windows平臺git多個賬號時,總是需要eval $(ssh-agent)問題

2018年9月9日 21:34