看git的官方教程,裏面沒有把如何搭建線下git服務器的SSH的鏈接說清楚,也許做者認爲有些東西是咱們理所固然知道的,但是仍是有些坑阻擋了咱們一些時間。通過折磨,終於把這個弄通了,過程記錄以下:linux
服務器地址:10.10.10.19git
本機PC:10.10.10.99sql
假設咱們已經在服務器上創建起了一個空的git倉庫目錄 /opt/git-repo/project.git shell
咱們已經有一個專門的git服務器帳戶,沒有的話能夠用root帳戶新建(adduser git)服務器
接下來主要分爲服務器端的配置和客戶端的配置ssh
服務器端配置工具
通常linux系統上都已經安裝了ssh,若是沒有安裝,自行百度安裝fetch
如下步驟用root帳戶進行操做:rest
編輯/etc/ssh/sshd_config文件code
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
放開以上三行的註釋
StrictModes no
放開StrictModes yes的註釋,同時修改yes爲no
配置完成之後,重啓ssh服務
service sshd restart
如下切換爲git用戶驗證一下配置是否有效
生成ssh祕鑰對
ssh-keygen -t rsa -P ‘’
連續按兩次回車,不須要輸入密碼
生成之後,在 ~/.ssh/文件夾下會生成兩個文件 id_rsa和id_rsa.pub文件
接下來把本地的公鑰認證放入認證文件中,而且賦予600的權限
cat id_rsa.pub >> authorized_keys chmod 600 authorized_keys chmod 700 ~/.ssh/
而後使用 ssh git@localhost命令,若是沒有讓輸入密碼,則表明成功
客戶端配置
客戶端配置實際上和服務器的本地配置是同樣的,只是在客戶端生成祕鑰對
打開git shell工具,而後輸入 ssh-keygen -t rsa -P ‘’ 生成祕鑰對
這樣在C:\Users\ilove\.ssh下生成一樣的兩個文件id_rsa和id_rsa.pub,因爲個人用戶是ilove,因此是這樣的,本身在找的時候,請切換到本身的用戶目錄,更改上id_rsa.pub的名字,爲了表示這個文件是個人機器,我把文件名從新命名爲了id_rsa_wtf.pub,而後上傳到服務器,上傳到服務器上之後,而後把這個文件追加到驗證文件中去
cat id_rsa_wtf.pub >> authorized_keys
這時候再打開本機的git shell 再運行 git clone或者fetch就不會再讓輸入服務器密碼了