天天看點

Linux叢集配置SSH互信應用場景功能簡介核心思想操作步驟

應用場景

當你搭建linux叢集環境的時候,從一個節點登入到另一個節點,通過ssh方式,每次登入跳轉都需要輸入密碼,這樣造成非常不便,其實可以通過配置SSH互信,來實作叢集節點間的免密碼登入跳轉。

功能簡介

公鑰認證的基本思想: 對資訊的加密和解密采用不同的key,這對key分别稱作private key和public key,其中,public key存放在欲登入的伺服器上,而private key為特定的客戶機所持有。當客戶機向伺服器發出建立安全連接配接的請求時,首先發送自己的public key,如果這個public key是被伺服器所允許的,伺服器就發送一個經過public key加密的随機資料給客戶機,這個資料隻能通過private key解密,客戶機将解密後的資訊發還給伺服器,伺服器驗證正确後即确認客戶機是可信任的,進而建立起一條安全的資訊通道。通過這種方式,客戶機不需要向外發送自己的身份标志“private key”即可達到校驗的目的,并且private key是不能通過public key反向推斷出來的。這避免了網絡竊聽可能造成的密碼洩露。客戶機需要小心的儲存自己的private key,以免被其他人竊取,一旦這樣的事情發生,就需要各伺服器更換受信的public key清單。

簡言之,當我們在搭建叢集過程中,在叢集中機器間互相通信的時候,會不斷的提示你輸入通信機器的密碼,然而當我們建立起叢集間的ssh互信後,任意兩台機器之間可以無密碼的友善通信。

核心思想

  • 配置ssh互信的核心思想如下:
  • 首先,在要配置互信的機器上,生成各自的經過認證的key檔案;
  • 其次,将所有的key檔案彙總到一個總的認證檔案中;
  • 将這個包含了所有互信機器認證key的認證檔案,分發到各個機器中去;
  • 驗證互信。

操作步驟

在主機名為mgm,data1,data2,data3,sql1,sql2的節點間建立ssh互信。

1. 建立公鑰秘鑰

在每個節點上建立 RSA密鑰和公鑰,輸入如下指令,一路回車
mkdir ~/.ssh (如果目錄存在,就不必要建立)
   chmod  700 ~/.ssh 
   cd ~/.ssh 
   ssh-keygen -t rsa            

2. 修改hosts檔案

在整合公鑰之前我們需要修改mgm的hosts檔案。

在mgm節點輸入指令:

并添加下圖中的資訊

vim /etc/hosts           

3. 整合公鑰檔案

# 在mgm節點上執行以下指令:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh data1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh data2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh data3 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh sql1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh sql2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys           

4. 分發整合後的公鑰檔案

# 在mgm節點上執行以下指令
scp ~/.ssh/authorized_keys  data1:~/.ssh/
scp ~/.ssh/authorized_keys  data2:~/.ssh/
scp ~/.ssh/authorized_keys  data3:~/.ssh/
scp ~/.ssh/authorized_keys  sql1:~/.ssh/
scp ~/.ssh/authorized_keys  sql2:~/.ssh/           

5. 分發hosts檔案

# 然後我們需要将我們在mgm節點上配置的hosts檔案分發到所有的節點上:
# 我們在mgm節點上輸入如下指令:
scp /etc/hosts data1:/etc
scp /etc/hosts data2:/etc
scp /etc/hosts data3:/etc
scp /etc/hosts sql1:/etc
scp /etc/hosts sql2:/etc           

6. 測試ssh互信

# 在各個節點上運作以下指令,若不需要輸入密碼就顯示系統目前日期,就說明SSH互信已經配置成功了。
在mgm節點上輸入以下指令:
ssh data1 date
ssh data2 date
ssh data3 date
ssh sql1 date
ssh sql2 date
# 然後分别對data1 data2 data3 sql1 sql2節點分别輸入以下指令:
ssh data1 date
ssh data2 date
ssh data3 date
ssh sql1 date
ssh sql2 date
ssh mgm date           

繼續閱讀