1.ssh??(保證過程中是加密的,即安全的)
ssh 是 Secure Shell 的縮寫,是一個建立在應用層上的安全遠程管理協議。ssh 是目前較為可靠的傳輸協議,專為遠程登錄會話和其他網絡服務提供安全性。利用 ssh 協議可以有效防止遠程管理過程中的信息泄露問題。ssh可用於大多數UNIX和類UNIX操作系統中,能夠實現字符界面的遠程登錄管理,它默認使用22端口,采用密文的形式在網絡中傳輸數據,相對於通過明文傳輸的Telnet協議,具有更高的安全性。
2.ssh的登錄驗證模式
ssh 提供了基於賬戶密碼(口令)和密鑰對兩種登錄驗證方式,這兩者都是通過密文傳輸數據的。
賬戶密碼驗證:
賬戶密碼登錄認證過程中傳輸的是用戶的賬戶名和密碼,密碼具有足夠的復雜度才能具有更高的安全性。
Linux主機之間的遠程管理工具是ssh命令,所以我們直接使用ssh進行遠程登錄
格式:
ssh 用戶名@IP地址 e.g. ssh root@192.168.88.20
windows遠程登錄Linux主機一般使用第三方工具,比如Xshell等工具
密鑰對驗證:
⑴首先需要在 Client 上創建一對密鑰,並且需要把公鑰放在需要訪問的 Server 上
⑵當 Client 需要連接 Server 時,Client 端的軟件就會向 Server 端發出登錄請求,請求使用密鑰對中的的公鑰進行安全驗證
⑶Server 收到請求之后,會在該用戶的家目錄下查詢公鑰文件,拿 Client 發送過來的公鑰和自己家目錄下的公鑰進行比較
⑷如果兩個公鑰一致,Server 就用公鑰加密“challenge(質疑)”,並把它發送給 Client 軟件。Client 收到加密內容之后,使用本地的私鑰進行解密,再把解密結果發送給 Server 端,Server 端驗證成功后,允許登錄
注意:若第3個步驟對比結果失敗,則 Server 端會通知 Client 端此公鑰未在本機注冊,無法驗證登錄
秘鑰對:對要進行保護的數據進行加密和解密的詞典(查找順序具有一定的規律)
公鑰: 服務器產生,強行要求客戶端接收,並使用其加密數據
私鑰(秘鑰): 服務器產生,解密客戶端發送的加密數據(使用自己公鑰加密的數據)
單向加密:ssh默認就是單向加密,客戶端發往服務器的數據是加密的
雙向加密:客戶端也產生秘鑰對,並將公鑰存放在服務器端一份,形成雙向加密
#需人為設置 但越安全的加密越會造成數據存儲和傳輸壓力變大,效率變低。
https://
http://
證書加密 類似於 秘鑰對
Linux之間進程遠程登錄:
ssh 用戶名@IP地址 #默認請求對方的22端口
Linux客戶端接收了公鑰文件后,會將公鑰文件存放的路徑:~/.ssh/known_hosts
#所有登錄服務器的客戶端所接收的公鑰就是同一個文件
公鑰文件:公開性的,所有人都能獲取到
私鑰文件:必須僅保存在服務器端,並且只有服務器端能使用
服務器端的公鑰私鑰來自於哪?
ssh服務的安裝路徑:/etc/ssh/
*_key #私鑰 *.pub #公鑰
盡量選擇rsa/dsa加密算法
ssh v1 兼容 rsa
ssh v2 兼容 rsa dsa
加密長度:
256倍數
512/768/1024/2048/4096 #加密長度越長越安全,解密越慢
服務器端:/etc/ssh
客戶端配置文件: 配置自己作為客戶端時的選項ssh_config
服務器端配置文件: 配置自己作為服務器端時的選項sshd_config