linux主機互信

來源:互聯網
上載者:User

標籤:ssh   linux   互信   

linux配置ssh互信

 

什麼叫linux主機互信:

Linux主機互信,就是主機之間相互信任,什麼是信任,就像人與人之間一樣,不需要利用金錢等(除了你自己以外其他的東西)來取得對方的信任,大家相互信任對方,不需要額外的憑證。就好比你,你爸,你媽,你姐之間,不需要錢來維持你們之間的信任。同樣,linux主機之間也是,我們從一台主機登陸到另一台時,往往需要驗證你,需要你輸入使用者密碼,才允許你登陸。這樣在多台機器之間來回切換登陸就會頻繁輸入密碼,非常麻煩,看看,一切的根源來自於互不信任。可不可以不用輸入密碼就直接登陸呢?答案是可以,但條件是主機之間相互信任對方。

因此ssh互信就誕生了。我們在主機值之間配置了公開金鑰認證後,也就是取得信任之後,就不必再輸入密碼了(當然實際上是ssh使用rsa演算法幫你完成了驗證過程)。

公開金鑰認證的基本思想:

對資訊的加密和解密採用不同的key,這對key分別稱作private key和publickey,其中,public key存放在欲登入的伺服器上,而privatekey為特定的客戶機所持有。當客戶機向伺服器發出建立安全連線的請求時,首先發送自己的public key,如果這個public key是被伺服器所允許的,伺服器就發送一個經過public key加密的隨機資料給客戶機,這個資料只能通過private key解密,客戶機將解密後的資訊發還給伺服器,伺服器驗證正確後即確認客戶機是可信任的,從而建立起一條安全的資訊通道。通過這種方式,客戶機不需要向外發送自己的身份標誌“private key”即可達到校正的目的,並且private key是不能通過public key反向推斷出來的。這避免了網路竊聽可能造成的密碼泄露。客戶機需要小心的儲存自己的private key,以免被其他人竊取,一旦這樣的事情發生,就需要各伺服器更換受信的publickey列表。

 使用過github的使用者就會知道,用git登陸遠程倉庫github的時候,也會有公開金鑰認證(當然是首次使用git時),首次使用git,就會要求你在用戶端產生一個rsa key pairs,一個public-key存放於id_rsa.pub,一個private-key存放於id_rsa,並且上傳你的公開金鑰public-key到github上,這樣做的目的就是你可以取得github的信任,也就是github信任你,下次你登入的時候,github會使用你上傳的公開金鑰來驗證你的身份,從而不用輸入密碼。當然這個過程只是單向的信任,也就是github現在信任你,但是你並沒有建立對github的信任,需要建立麼,其實沒有必要,因為github是不會主動向你發出請求的,大多數情況是你需要主動向github發送請求。

知道了單向信任,那麼相互信任就簡單了,就是主機之間的公開金鑰都要告知對方,這樣才能相互信任,你信任我,我信任你。那麼,以下就是互信建立的步驟了:

 

 

配置ssh互信的步驟如下:

    1. 首先,在要配置互信的機器上,產生各自的經過認證的key檔案;

    2. 其次,將所有的key檔案匯總到一個總的認證檔案中;

    3. 將這個包含了所有互信機器認證key的認證檔案,分發到各個機器中去;

    4. 驗證互信。

    在主機名稱為node1,node2,node3上以相同的使用者test建立ssh互信。

 

 

1.在每個節點上建立 RSA密鑰和公開金鑰

使用test使用者登陸

mkdir~/.ssh

chmod700 ~/.ssh

cd~/.ssh

ssh-keygen-t rsa

 

2.整合公開金鑰檔案

在node1上執行以下命令

sshnode1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

sshnode2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

sshnode3 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

chmod600 ~/.ssh/authorized_keys

 

3.分發整合後的公開金鑰檔案

在node1上執行以下命令

scp~/.ssh/authorized_keys  node2:~/.ssh/

scp~/.ssh/authorized_keys  node3:~/.ssh/

 

4.測試ssh互信

在各個節點上運行以下命令,若不需要輸入密碼就顯示系統當前日期,就說明SSH互信已經配置成功了。

sshnode1 date

sshnode2 date

sshnode3 date

 

 一下是我的實驗

[[email protected] .ssh]$ ssh-keygen-t rsa

Generating public/private rsa key pair.

Enter file in which to save the key(/home/ocdc/.ssh/id_rsa):

/home/ocdc/.ssh/id_rsa already exists.

Overwrite (y/n)? y

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in/home/ocdc/.ssh/id_rsa.

Your public key has been saved in/home/ocdc/.ssh/id_rsa.pub.

The key fingerprint is:

b3:e7:19:4b:e1:59:0d:b5:4d:ba:04:89:81:9d:37:[email protected]

The key‘s randomart image is:

+---[RSA 2048]----+

|        oE=oo. .|

|       . + +o = |

|          ...+ .|

|             + . |

|       S . . o  |

|        + +     |

|       . *      |

|        + +     |

|         +      |

+-----------------+

然後在各個需要互信的介面機上重複以上步驟產生認證檔案

回到介面機1,

[[email protected] .ssh]$ ssh10.31.100.21 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[email protected]‘s password:

[[email protected] .ssh]$ ssh10.31.100.22 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[email protected]‘s password:

[[email protected] .ssh]$ ssh10.31.100.23 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[email protected]‘s password:

[[email protected] .ssh]$ ssh10.31.100.24 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[email protected]‘s password:

[[email protected] .ssh]$ catauthorized_keys

可以看到所有主機的公開金鑰都存在了authorized_keys中。接下來就是分發這個整合後的認證了。

[[email protected] .ssh]$ scp~/.ssh/authorized_keys 10.31.100.21:~/.ssh/

[email protected]‘s password:

authorized_keys                                                                                  100% 3219     3.1KB/s   00:00   

[[email protected] .ssh]$ scp~/.ssh/authorized_keys 10.31.100.22:~/.ssh/

[email protected]‘s password:

authorized_keys                                                                                  100% 3219     3.1KB/s   00:00   

[[email protected] .ssh]$ scp~/.ssh/authorized_keys 10.31.100.23:~/.ssh/

[email protected]‘s password:

authorized_keys                                                                                  100% 3219     3.1KB/s   00:00    

[[email protected] .ssh]$ scp~/.ssh/authorized_keys 10.31.100.24:~/.ssh/

[email protected]‘s password:

authorized_keys                                                                                  100% 3219     3.1KB/s   00:00

任務完成,驗證是否成功

[[email protected] .ssh]$ ssh10.31.100.21 date

Wed May 27 20:39:39 CST 2015

[[email protected] .ssh]$ ssh10.31.100.22 date

Wed May 27 20:39:45 CST 2015

[[email protected] .ssh]$ ssh10.31.100.23 date

Wed May 27 20:39:51 CST 2015

[[email protected] .ssh]$ ssh10.31.100.24 date

Wed May 27 20:39:55 CST 2015

linux主機互信

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.