1. 程式人生 > >使用公鑰與私鑰連線兩臺linux主機

使用公鑰與私鑰連線兩臺linux主機

1、輸入ssh-keygen,在本機/root/.ssh/目錄下生成id_rsa(私鑰)、id_ras.pub(公鑰)兩個檔案

2、輸入ssh-copy-id [user]@[host],遠端主機上就會有/root/.ssh/authorized_keys檔案,檔案內容和第一個主機的公鑰相同,(相當於下圖的第一步)傳送本機公鑰給遠端伺服器,此操作可能需要時間。

3、輸入ssh [user]@[host],(此操作完成了下圖的2、3、4步)即可登陸到遠端主機,並且在本機的/root/.ssh/目錄下生成known_hosts檔案,裡面儲存了連線的遠端主機的資訊(known_hosts檔案並不拘泥於公鑰私鑰操作,只是ssh操作連線一臺主機,就會在此處有記錄)

以下是操作原理圖:

用簡單的語言描述:

        客戶端生成私鑰和公鑰(id_rsa、id_ras.pub),將客戶端的公鑰傳送給伺服器,在伺服器的authorized_keys檔案中儲存的就是公鑰,在伺服器端生成一組隨機數,使用公鑰進行加密,將加密後的檔案傳送回給客戶端,客戶端使用自己的私鑰將檔案進行解密,並將解密後的數字再次傳送給伺服器,伺服器驗證傳送過來的數字是否和自己生成的隨機數相同,如果相同則表示客戶端與伺服器端匹配上,建立連線。至始至終,伺服器端只拿有公鑰,伺服器端就需要拿著公鑰和隨機數去尋找匹配的私鑰,如果一臺客戶端無法匹配,則匹配下一臺客戶端。