實戰證明LINUX系統下密鑰對驗證的安全性
密鑰對驗證:要求提供比對的密鑰資訊才能通過驗證,首先在用戶端建立一對密鑰檔案(公鑰、私鑰),後把公鑰檔案放到需要遠端連接配接的伺服器中。遠端登入時,系統将使用私鑰加密身份資訊送出給遠端主機,遠端主機使用對方送出的公鑰來解密進行身份驗證。
本次實驗通過三部分來完成:
1、建構密鑰對
2、驗證私鑰的可靠性
3、驗證公鑰的可靠性
一、建構密鑰對驗證SSH體系:
(1)首先在PC1上建立密鑰對(私鑰檔案:id_rsa 公鑰檔案:id_rsa.pub)
(2)将公鑰檔案上傳至需要遠端連接配接的伺服器
(3)使用密鑰對驗證
1、建立密鑰對:ssh-keygen -t rsa 在建立的過程中不設定短語(就是用來加密私鑰的密碼,因為如果腳本中需要遠端登入到另一台伺服器時,如果有短語會等待管理者輸入短語,導緻腳本執行暫停)。
2、拷貝公鑰到另一台linux主機(PC2):ssh-copy-id [email protected]
檢視 .ssh目錄下是否成功建立密鑰對,然後把公鑰拷貝到對方主機
[root@xs ~]# ls .ssh
id_rsa id_rsa.pub
3、遠端登陸: ssh [email protected]
通過上面截圖可以看到登陸192.168.80.100并不需要輸入密碼驗證就可以直接連接配接。因為PC1使用剛才産生的私鑰加密了資料,對方收到後使用公鑰解密可以解開,身份驗證成功。思考一個問題:如果此時PC2遠端連接配接PC1,是需要輸入密碼還是不需要直接連接配接成功呢?
二、驗證私鑰丢失後的安全性
如果私鑰丢失,那麼得到私鑰的使用者能否遠端連接配接到 PC2(私鑰在産生的時候并沒有設定短語加密)
1、把私鑰拷貝到另外一台 linux主機(PC3)root中,再把私鑰從PC3root中拷貝到普通使用者(yus)的目錄中,驗證root和yus能否遠端連接配接PC2
(1)、cd到 .ssh目錄并把id_rsa(私鑰)拷貝到PC3中
(2)、在PC3上檢視是否拷貝成功,并把id_rsa檔案複制到.ssh目錄中(如果沒有.ssh目錄要用mkdir建立一個.ssh目錄)
(3)連接配接PC2:ssh [email protected]
通過截圖可以看到已經成功連接配接到PC2并且不需要密碼驗證
驗證普通使用者能否遠端連接配接
1、賦予yus對id_rsa檔案的可執行權限
2、并把id_rsa檔案複制到yus使用者中的.ssh目錄下
[root@ys .ssh]# cp -p id_rsa /home/yus/
[root@ys .ssh]# su - yus
[yus@ys ~]$ mkdir /home/yus/.ssh
3、登陸到PC2:ssh [email protected]
<a href="https://s1.51cto.com/wyfs02/M00/9C/20/wKioL1lsdNfBwyKlAAA3_6iA5vA581.png" target="_blank"></a>
由以上結論可以得出私鑰丢失後,任何得到私鑰的都可以登陸到PC2伺服器。
三、驗證公鑰丢失後的可靠性
1、把PC2上的公鑰拷貝到PC3上
2、在PC3上把公鑰檔案複制到.ssh目錄中,記得把之前的私鑰檔案删除
3、使用PC1驗證能否遠端登陸PC3
<a href="https://s5.51cto.com/wyfs02/M01/9C/20/wKiom1lsdQuzr3B0AAAt-AsqJ5s832.png" target="_blank"></a>
通過上面截圖可得出結果,公鑰丢失後或被竊取後,産生密鑰對的伺服器就可遠端登陸到有公鑰的裝置上。也就是說哪台裝置上有公鑰,伺服器就能遠端連接配接,而且公鑰不論是從伺服器上獲得的還是從别的裝置上竊取的都可使用。所有無論是公鑰還是私鑰都需要妥善保管。
總結:SSH遠端管理通過密鑰對驗證是通過公鑰和私鑰互相加密解密完成驗證的。通過本次實驗可以看出,公鑰和私鑰都不可丢失,否則就會造成安全問題。同時相對于密碼驗證來說,密鑰對驗證要依然要安全許多。在合适的場景下合作恰當的驗證方式就好。絕對的安全是不存在的。
本文轉自Y.weisheng 51CTO部落格,原文連結:http://blog.51cto.com/yuan2/1948260,如需轉載請自行聯系原作者