UbuntuServer搭建Git服務器之SSH基本用法(一)

SSH協議是通過公鑰和私鑰來進行服務器的授權管理,是git的讀寫操作的標準協議。

假設cglab以服務器管理員賬號,labserver爲主機名。

1. 首先在linux server服務器安裝openssh

$sudo apt-get install openssh-server

 

2. SSH的公鑰與私鑰,所生成的公鑰可以用不同的用途,比如下面生成的id_rsa.pub公鑰用作shell登陸,而gitadmin.pub用作git訪問。

 

(1)創建公鑰和私鑰

$ssh-keygen    //該操作是在客戶端,

該命令會在用戶主目錄下創建 .ssh 目錄,並在其中創建兩個文件:

l  id_rsa, 私鑰文件。是基於 RSA 算法創建。該私鑰文件要妥善保管,不要泄漏。

l  id_rsa.pub, 公鑰文件。和 id_rsa 文件是一對兒,該文件作爲公鑰文件,可以公開。

創建了自己的公鑰/私鑰對後,就可以使用下面的命令,實現無口令登錄遠程服務器,即用公鑰認證取代口令認證。

 

$ssh-keygen –f~/.ssh/gitadmin  //該命令創建一個指定名字爲gitadmin的公私鑰文件對。

 

(2)將公鑰上傳到服務器

$scp ~/.ssh/gitadmin.pubcglab@labserver:/tmp/ //上傳到服務器,用作gitolite訪問,具體用法參見下篇

$ scp ~/.ssh/id_rsa.pubcglab@labserver:/tmp/   //上傳到服務器,用作shell訪問

 

(3)將上傳的公鑰,根據需要用作不同用途

$ssh cglab@labserver    //以cglab賬號登陸服務器

cglab@labserver:~$sudo ssh-copy-id –i /tmp/id_rsa.pubgitadmin@labserver  //加入到SSH登陸身份gitamdin,用作shell訪問

 

(4)SSH主機別名

回到客戶端,在~/.ssh/下創建SSH主機別名,以方便登陸服務器訪問shell用。

$vi ~/.ssh/config

其內容爲:

host admin

 user gitadmin  //登陸到服務器所用的身份驗證

 hostname labserver  //服務器主機名

 port 22

 identityfile ~/.ssh/id_rsa  //所用的公私鑰對,在此用的是id_rsa

 

(5)通過SSH登陸服務器

$ssh gitadmin  //使用別名,以服務器賬號gitadmin身份登陸服務器,登陸shell喲。

 

$ssh gitadmin@labserver //將用默認的id_rsa來認證,可以登陸shell

 

 

 

輝輝                                     

(FightingBull Studio)                   

 

 

 

 

 

發佈了32 篇原創文章 · 獲贊 8 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章