gitllab访问报错:Permission denied (publickey). 以及后续测试
主要測(cè)試了各方式clone的情況:
1. 安裝gitlab,配置ip:port。
常規(guī)步驟:
yum install -y curl policycoreutils-python openssh-server wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm rpm -ivh gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm vim /etc/gitlab/gitlab.rb #修改nginx['listen_addresses']、nginx['listen_port']、external_url 3項(xiàng) gitlab-ctl restart gitlab-ctl reconfigure
然后在gitlab網(wǎng)頁(yè)端注冊(cè)賬號(hào)
2. gitlab注冊(cè)的賬號(hào)和linux賬號(hào)關(guān)系,git賬號(hào)
linux賬號(hào)和gitlab內(nèi)賬號(hào)沒(méi)有關(guān)系。安裝完gitlab之后,linux系統(tǒng)會(huì)創(chuàng)建一個(gè)叫g(shù)it的賬號(hào),之后對(duì)project的上傳下拉操作都是通過(guò)git賬號(hào)完成。
3. 注冊(cè)ssh key之后,以及使用ssh clone的過(guò)程。訪問(wèn)受linux sshd內(nèi)ssh認(rèn)證配置的影響。
在gitlab上注冊(cè)了ssh key之后,背后實(shí)際上gitlab會(huì)把注冊(cè)的key寫入git賬號(hào)的~/.ssh/authorized_keys文件。這樣,每次git clone/push/pull操作時(shí),都是先ssh到linux的git賬號(hào),再進(jìn)行后續(xù)操作。
因?yàn)間it的ssh方式會(huì)通過(guò)sshd服務(wù),所以在linux上修改了sshd配置會(huì)影響git的使用。比如修改了ssh端口,則git也需要配置響應(yīng)端口(很多時(shí)候會(huì)修改ssh的默認(rèn)端口,從22改為一個(gè)大數(shù)字)。
一般情況下,git ssh認(rèn)證有公鑰私鑰就可以正常操作。但有的情況下,linux端會(huì)開(kāi)雙重認(rèn)證AuthenticationMethods publickey,password。這個(gè)時(shí)候再git clone git@****.git 的時(shí)候,會(huì)需要輸入git賬號(hào)自身的密碼(可以想象成先登錄到linux的git賬號(hào))。如果想要順利進(jìn)行,一般要通過(guò)root賬號(hào)修改下git賬號(hào)的密碼,再通過(guò)驗(yàn)證。
4. git ssh clone和http clone的區(qū)別。為什么ssh clone不可以,http clone卻可以?
git ssh 和 git http是兩個(gè)相互獨(dú)立的方式。git ssh通過(guò)ssh連接,受linuxsshd配置(git賬戶)影響;git http直接通過(guò)ip:port進(jìn)行連接,不需要linux賬戶的信息,只需要在gitlab上注冊(cè)的賬號(hào)的用戶名和密碼。
所以,有時(shí)候git ssh不成功時(shí),通過(guò)ssh clone可以成功。
5. git http clone 用戶密碼。全局配置文件~/.gitconfig內(nèi)的[User].name項(xiàng)的作用。
git http每次都要輸賬號(hào)密碼,可以通過(guò)git config credential.helper 相關(guān)命令存儲(chǔ)賬號(hào)密碼。
此外,在全局配置文件~/.gitconfig內(nèi)也會(huì)有一個(gè)
[user] name = testmm email = ***
User項(xiàng)。這里的user.name和gitlab賬號(hào)也是相互獨(dú)立的。user.name代表的是在你提交commit時(shí),顯示的名字。比如,執(zhí)行g(shù)it lg:
[ttt1@local transfer]$ git lg * 67ccd87 - (HEAD, origin/master, origin/HEAD, master) test123 (3 hours ago) <testmm>
這里顯示是testmm提交的修改,這不是gitlab內(nèi)賬號(hào)的名字,只是本地做的一個(gè)全局配置內(nèi)的名字。
但是在gitlab網(wǎng)頁(yè)上看到的修改者還是以gitlab內(nèi)的賬號(hào)名字出現(xiàn)的。這是個(gè)不一樣的地方。
總結(jié)
以上是生活随笔為你收集整理的gitllab访问报错:Permission denied (publickey). 以及后续测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 无线路由器怎么连接如何接入无线路由器
- 下一篇: 优酷路由宝怎么赚钱优酷土豆路由器如何赚钱