1. 程式人生 > >實戰證明LINUX系統下密鑰對驗證的安全性

實戰證明LINUX系統下密鑰對驗證的安全性

ssh 遠程管理 密鑰對驗證

實戰證明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目錄下是否成功創建密鑰對,然後把公鑰拷貝到對方主機


[[email protected] ~]# 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目錄下

[[email protected] .ssh]# cp -p id_rsa /home/yus/

[[email protected] .ssh]# su - yus

[[email protected] ~]$ mkdir /home/yus/.ssh


3、登陸到PC2:ssh [email protected]


技術分享

由以上結論可以得出私鑰丟失後,任何得到私鑰的都可以登陸到PC2服務器。


三、驗證公鑰丟失後的可靠性

1、把PC2上的公鑰拷貝到PC3上

技術分享


2、在PC3上把公鑰文件復制到.ssh目錄中,記得把之前的私鑰文件刪除


技術分享


3、使用PC1驗證能否遠程登陸PC3

技術分享

通過上面截圖可得出結果,公鑰丟失後或被竊取後,產生密鑰對的服務器就可遠程登陸到有公鑰的設備上。也就是說哪臺設備上有公鑰,服務器就能遠程連接,而且公鑰不論是從服務器上獲得的還是從別的設備上竊取的都可使用。所有無論是公鑰還是私鑰都需要妥善保管。


總結:SSH遠程管理通過密鑰對驗證是通過公鑰和私鑰互相加密解密完成驗證的。通過本次實驗可以看出,公鑰和私鑰都不可丟失,否則就會造成安全問題。同時相對於密碼驗證來說,密鑰對驗證要依然要安全許多。在合適的場景下合作恰當的驗證方式就好。絕對的安全是不存在的。



本文出自 “陽光學苑” 博客,請務必保留此出處http://yuan2.blog.51cto.com/446689/1948260

實戰證明LINUX系統下密鑰對驗證的安全性