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中開啓密鑰對認證功能。