Linux系列-Red Hat5平臺下構建密鑰對驗證的SSH登陸體系
Telnet你們都應該用過,感受還能夠吧,用起來確實不錯。但就安全性而言實在不敢恭維。在局域網裏用一下還能夠,要是一牽扯到遠程還得SSH。
SSH(Secure Shell)是標準的網絡協議,主要用於實現字符界面的遠程登陸管理,以及遠程文件複製的功能。SSH協議對經過網絡傳輸的數據進行了加密處理,其中也包括了用戶登陸時輸入的用戶口令。與早期的telnet、rsh、rcp等應用相比,SSH協議提供了更好的安全性。
RHEL5中,默認安裝了OpenSSH服務器的客戶端的相關軟件包。它屬於開源軟件項目,若是沒有的話的能夠去它的官方網站下載,地址以下:
本次很簡單因此我也沒準備拓撲,直接來看步驟吧!
1.
在客戶端建立用戶。
用root用戶也能夠,但不建議使用root用戶。無論什麼狀況下咱們都應該避免直接使用root用戶,要把su這個命令好好用起來。因此下面我建了一個普通用戶zpp,而且設了密碼。
2.
在客戶端建立密鑰對
如今仍是在客戶上,使用ssh-keygen命令工具爲當前用戶建立密鑰對文件,能夠使用的加密算法爲RSA或DSA。我就用RSA吧。我們按照圖上說的作,作完以後就會產生一對密鑰,一個公鑰一個私鑰。默認位於用戶宿主目錄下的.ssh/目錄下,其中id_rsa.pub是用戶的公鑰文件,能夠提供SSH服務器;id_rsa是用戶的私鑰文件,默認權限爲600,私鑰文件必須妥善保管。
3.
上傳公鑰文件給服務器
將客戶端用戶建立的公鑰文件發送給OpenSSH服務器,並保存到服務器的受權密鑰庫中。服務器的受權密鑰庫文件位於各用戶宿主目錄下的.ssh/目錄中,默認的文件名是authorized_keys。上傳公鑰文件時能夠選擇FTP、Samba、HTTP、SCP、E-mail等方式,我這你們也看到了使用的是Samba。而後我建了一個與客戶端同名的賬戶,最後把公鑰信息複製了一份到服務器上,名字叫authorized_keys。這個名子是系統上配置文件裏默認的。
注意這個文件的全部者要求是登陸的目標用戶或root,同組或其餘用戶對該文件不能有寫入權限,不然可能沒法使用密鑰驗證成功登陸系統。最好由root來建立,並保持權限爲644以下:
4.
調整服務器設置
SSH的配置文件叫sshd_config,在/etc/ssh/目錄下,我們最好來個備份(Linux下全部服務的配置文件都建議這樣作),而後把那些沒用的註釋行去掉。這樣顯得簡潔大方。
在OpenSSH服務器的配置文件中,設置啓用密鑰對驗證方式,禁用密碼驗證方式,而且指定保存用戶公鑰內容的數據文件位置,如圖:
5.
啓動sshd服務,確保22端口已經開了,如圖:
6.
如今我們到客戶端來試試看。
用zpp用戶登陸到Client(網管工做站)而後使用命令ssh@192.168.1.1 登陸。首次登陸時它會說一番客套話,不用管它說什麼,yes就是了,而後它會要我們輸入事先設置的密碼短語。輸入以後就上去了,如圖:
OK!如今我們就構建起了密鑰對驗證的SSH登陸體系,最後再次強調一下密鑰必定要保管好。不然是至關危險的。你們從上圖中可能已經看到了,從客戶端登陸服務器時是不須要知道服務器中對應用戶密碼的。