Centos服務器ssh免密登錄以及搭建私有git服務器


一、概述

  服務器的免密登錄和git服務器的搭建,關鍵都是要學會把自己用的機器的公鑰添加到服務器上,讓服務器“認識”你的電腦,從而不需要輸入密碼就可以遠程登錄服務器上的用戶

  免密登錄當然是登錄root用戶,而搭建git服務器需要在服務器上創建一個git用戶。注意服務器上每個用戶識別的公鑰存在不同的文件中,因此需要自己的電腦既能免密登錄,又能使用git服務器,就要把自己電腦的公鑰添加到兩個文件中

 

二、服務器免密登錄

  1、修改服務器sshd config配置

  登錄服務器的root用戶,然后輸入

vim /etc/ssh/sshd_config

  編輯root用戶的ssh設置,在文件中加入

RSAAuthentication yes
PubkeyAuthentication yes

  兩句,用以開啟ssh證書登錄

  注意到文件中有一行

AuthorizedKeysFile    .ssh/authorized_keys

  這里指定了root公鑰存放的文件,下一步要做的就是將我的電腦的公鑰加到這個文件里

  2、獲取自己機器的公鑰

ssh-keygen -t rsa

  之后一路回車,公鑰和私鑰都會存在默認的~/root/.ssh/目錄中。

  進入這個目錄,用  cat id_rsa.pub  查看公鑰,然后將顯示的內容復制到服務器的authorized_keys中即可,此文件一行一個公鑰

  3、免密登錄

  在自己的機器中輸入ssh root@服務器公網ip就可以直接登錄服務器的root賬號了

  4、禁用密碼登錄(可選

  防止服務器登錄密碼被暴力破解,禁用密碼登錄,修改sshd_config,找到PasswordAuthentication將它設置為no

  重啟ssh服務

service sshd restart

 

三、搭建git服務器

  在理解了服務器免密登錄的原理后搭建git服務器就很簡單了,我們需要創建一個用戶git,把git倉庫授權給git管理,然后把允許訪問git倉庫的機器的公鑰添加到git用戶的authorized_keys文件中。

 1、安裝git

yum install -y git

  -y:對安裝過程中所有的提示選擇yes

 2、創建git用戶

adduser git

 3、配置git用戶的ssh訪問設置

  進入git用戶目錄

cd /home/git

  創建.ssh文件夾

mkdir .ssh

  將.ssh文件夾的權限值設為700,即只允許本用戶和root用戶擁有讀、寫、執行權限。

chmod 700 .ssh

  這么做的原因是是如果authorized_keys文件、$HOME/.ssh目錄 或 $HOME目錄讓本用戶之外的用戶有寫權限,那么sshd都會拒絕使用 ~/.ssh/authorized_keys 文件中的key來進行認證的。

  創建一個空文件authorized_keys

touch .ssh/authorized_keys

  將authorized_keys權限值設為600,即只允許本用戶和root用戶擁有讀、寫權限。

chmod 600 .ssh/authorized_keys

  將git文件夾的用戶名和組名都改為git,-R表示對該文件夾下所有子文件進行同樣的操作

cd /home
chown
-R git:git git

 4、將本機公鑰拷貝到git的authorized_keys中,一行一個

 5、創建git倉庫

  在home目錄下新建一個gitrepo文件夾作為git倉庫的儲存室

cd /home
mkdir gitrepo

  將此文件夾歸為git所有

chown git:git gitrepo

  創建第一個git倉庫

cd gitrepo
git init --bare test.git

  將倉庫歸為git所有

chown -R git:git test.git

 6、在客戶端拉取服務器新建的git倉庫

git clone git@公網ip:/home/gitrepo/test.git

  在本地編輯倉庫並提交后,可以連接到服務器查看git倉庫的修改時間,如果修改時間有變化則說明提交成功

 7、從客戶端push倉庫

git remote add origin git@公網ip:/home/gitrepo/test.git
git push -u origin master

 8、禁用shell登錄

  如果希望git用戶不能登錄shell,就要修改git用戶的權限

  修改/etc/passwd

vim /etc/passwd

  將

git:x:1000:1000::/home/git:/bin/bash

  改為

git:x:1000:1000::/home/git:/bin/git-shell

  這樣,git用戶可以正常通過ssh使用git,但無法登錄shell。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM