以前本身是按照 Git 服務器搭建這篇博客來安裝git服務器的,一步步順序下來,但git clone的時候,每次都要求輸入密碼。說好的SSH免密登陸呢。先後搞了一天多才搞定,如今記錄下踩過的坑。html
那篇文章的原文:git
收集全部須要登陸的用戶的公鑰,公鑰位於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用戶,因此應該再加一句:shell
$ chown -R git:git .ssh
那篇文章沒有提修改/etc/ssh/sshd_config下的配置文件。bash
在Git服務器上首先須要將/etc/ssh/sshd_config中將RSA認證打開,即: 1.RSAAuthentication yes 2.PubkeyAuthentication yes 3.AuthorizedKeysFile .ssh/authorized_keys
修改配置以後,須要重啓sshd服務器
systemctl restart sshd.service
能夠經過這個命令去測試SSH是否可鏈接:ssh
ssh -T git@192.168.1.85
而後在服務器,能夠經過這個命令查看ssh狀態測試
systemctl status sshd.service
ssh能夠鏈接了,但git clone的時候,報spa
fatal: protocol error: bad line length character: This
找到/etc/passwd,原文裏面是說:rest
這樣咱們的 Git 服務器安裝就完成了,接下來咱們能夠禁用 git 用戶經過shell登陸,能夠經過編輯/etc/passwd文件完成。找到相似下面的一行: git:x:503:503::/home/git:/bin/bash 改成: git:x:503:503::/home/git:/sbin/nologin
但就是這個nologin讓咱們報錯了,應該改爲:code
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