之前自己是按照 Git 伺服器搭建這篇部落格來安裝git伺服器的,一步步順序下來,但git clone的時候,每次都要求輸入密碼。說好的SSH免密登入呢。前後搞了一天多才搞定,現在記錄下踩過的坑。
坑1:
那篇文章的原文:
收集所有需要登入的使用者的公鑰,公鑰位于id_rsa.pub檔案中,把我們的公鑰導入到/home/git/.ssh/authorized_keys檔案裡,一行一個。
如果沒有該檔案建立它:
$ cd /home/git/
$ mkdir .ssh
$ chmod 700 .ssh
$ touch .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
這邊建立的檔案夾,應該授權給git使用者,是以應該再加一句:
$ chown -R git:git .ssh
坑2:
那篇文章沒有提修改/etc/ssh/sshd_config下的配置檔案。
在Git伺服器上首先需要将/etc/ssh/sshd_config中将RSA認證打開,即:
1.RSAAuthentication yes
2.PubkeyAuthentication yes
3.AuthorizedKeysFile .ssh/authorized_keys
修改配置之後,需要重新開機sshd
systemctl restart sshd.service
可以通過這個指令去測試SSH是否可連接配接:
ssh -T [email protected]
然後在伺服器,可以通過這個指令檢視ssh狀态
systemctl status sshd.service
坑3:
ssh可以連接配接了,但git clone的時候,報
fatal: protocol error: bad line length character: This
找到/etc/passwd,原文裡面是說:
這樣我們的 Git 伺服器安裝就完成了,接下來我們可以禁用 git 使用者通過shell登入,可以通過編輯/etc/passwd檔案完成。找到類似下面的一行:
git:x:503:503::/home/git:/bin/bash
改為:
git:x:503:503::/home/git:/sbin/nologin
但就是這個nologin讓我們報錯了,應該改成:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
附Git建立倉庫指令:
git init --bare demo.git
--将建立的庫授權給git使用者
/home/gitrepo/demo.git/
chown -R git:git demo.git
如果我的文章對你有幫助,就點一下推薦吧.(*^__^*)