what?什麼是密鑰對驗證的SSH體系?
SSH支援兩種驗證方法,一種是使用者身份驗證另一種是密鑰對驗證,本文主要講解如何實作密鑰對驗證。
why?使用密鑰對驗證的好處?
密鑰對驗證更加安全,并且可以免互動。使用起來更加安全、便捷。
where?應用在哪裡?
可應用于OpenSSH,實作更加安全、免互動的遠端登入、拷貝、複制等操作。
how?如何實作?
下圖為在Linux伺服器、客戶機中建構密鑰對驗證SSH體系的基本過程。

一,在用戶端建立秘鑰對
在linux客戶機中,通過ssh-keygen工具建立秘鑰對檔案,可用的加密算法為RSA或DSA。
指令格式:ssh-keygen -t 算法 //預設是RSA算法
上述過程中一般按enter鍵即可,如果需要設定秘鑰短語可以根據提示輸入,私鑰短語用來保護私鑰檔案,當使用該私鑰進行驗證的時候需要使用短語進行驗證。
注意!私鑰檔案(id_rsa)的預設權限為600,公鑰檔案(id_rsa.pub)的預設為644,私鑰檔案的權限不要進行修改,不要将私鑰洩露給任何人!
二,将公鑰檔案上傳至伺服器
使用scp 指令将公鑰檔案上傳到遠端伺服器的opt目錄下(目錄的位置随便)
三,在伺服器端導入公鑰
在伺服器中,目标使用者(用于遠端登入的賬戶lisi)的公鑰位于~/.ssh目錄,預設的檔案名是authorized_keys。當獲得客戶機發送過來的公鑰檔案後,可以通過重定向将公鑰檔案内容追加到目标使用者的公鑰資料庫中。
在公鑰資料庫authorized_keys檔案中,最關鍵的内容是"ssh-rsa"加密字串部分,當導入非ssh-keygen工具建立的公鑰文本時應確定此部分資訊完整,最後的zhangsan@ys是注釋資訊(可有可無)
注意!這個檔案同組或者是其他使用者對該檔案不能有寫入的權限。還應該確定伺服器支援秘鑰對驗證的方式,可參考上一篇如何在sshd_config中開啟密鑰對認證功能。