- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
交互示意圖 所示:
服務端在每次啟動 SSH 服務時,都會自動檢查 /etc/ssh/ 目錄下相關密鑰文件的有效性。如果相關文件檢查發現異常,則會導致服務啟動失敗,并拋出相應錯誤信息。 如果文?相關不存在,則會自動重新創建。
默認創建的相關文件及用途說明如下:
ll /etc/ssh/ -rw-------. 1 root root 125811 Aug 13 2015 moduli → 用于 DH-GEX 算法 -rw-r--r--. 1 root root 2047 Aug 13 2015 ssh_config → SSH 客戶端配置文件 -rw-------. 1 root root 3879 Aug 13 2015 sshd_config → SSH 服務配置文件 -rw-------. 1 root root 672 May 20 14:22 ssh_host_dsa_key → DSA 算法私鑰 -rw-r--r--. 1 root root 590 May 20 14:22 ssh_host_dsa_key.pub → DSA 算法公鑰 -rw-------. 1 root root 963 May 20 14:22 ssh_host_key → SSH V1 版RSA 算法私鑰 -rw-r--r--. 1 root root 627 May 20 14:22 ssh_host_key.pub → SSH V1 版 RSA 算法公鑰 -rw-------. 1 root root 1675 May 20 14:22 ssh_host_rsa_key → SSH V2 版 RSA 算法私鑰 -rw-r--r--. 1 root root 382 May 20 14:22 ssh_host_rsa_key.pub → SSH V2 版 RSA 算法公鑰
服務端 SSH 服務正常運行后,客戶端連接時,進行如下交互:
客戶端向服務端發送連接請求。
客戶端通過 SSH 工具連接服務端。相關信息通過明文發送。
服務端返回公鑰信息:
根據客戶端所使用的服務協議版本及算法設置,返回相應公鑰信息。比如,默認情況下,客戶端通過 SSH V2 協議,基于 RSA 算法建立連接,則服務端將 ssh_host_rsa_key.pub 文件中的內容返回客戶端。相關信息通過明文發送。
客戶端對服務端公鑰信息進行比對和確認:
客戶端接收到服務端公鑰信息后,會進行如下比對,并讓用戶對相關信息進行確認。
如果用戶輸入 yes,則會將相應的公鑰信息,保存到當前用戶家目錄下 .ssh 目錄內的 known_hosts 文件中。 比如:
cat ~/.ssh/known_hosts IP 明文顯示: 192.168.0.1 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3sdlboGEgY9buZpkPuygPw0NxAvmxYd0mc3fo2MgP+JqgFC9/9ZXOgDXKJrjE2HKBieJZSPKGncIh+zLxTvmykeJQBXv7i1GiUjW+H3VY69Ge3AdGfCd+XF+Cvi1e+j18zhHnjSzvIBoNpT5cBWWNbw7mNHCwTb0sHAVUkWR4Ck/LM5/rQ09A+m6BLfZJL8CRNGxKTbyINi6o812S+Cy64WqDs1nTpIXp2Bkcpjclb36bFSs9Z/tWNuJl7A//7HNtxMgFGBnE07Ykvvy8s06DUmkyFy8GcXGBpnfdg9utLodfQLFQnKflCQZ110BpQaCWlWPjU9dc4w3XLJ/XQOP4w== IP 做了加密處理: |1|3efXAZ4sNHcUcHamBy4gDriblc8=|8idBhLq9aLl2sfh4KswMsk4sPFI= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwS4DE3hok8RCkxYlTxsexNrNa62e05UGSkoP7ie26DDWjG1Aoc74cCsE4is9p7lEfFUYYlAzeYhPqE/yGf5YxRZUOU2IeFI4cEqo8YZr7edVYpgAq2f2J0zMwk1syenD12lmUPkYA4mMB6it3jxXR5k+H0HZh9YA7mRXkiTjlkAMWirBcnUvtKYRv9LRIr3ikUiPy2gfZO291Ae9zuTsWwEtHQxIpiBgk3vwF2gCUFlX9y//IsMjdQq5prk7x3BjXhUorqgJO1gt1VHW8Xxx9Oe50YF1hi9DuE6VXwyh4xfHTmauRQybwsYafdA3HxrA2od6x9l19D9EH7xHAjDa5w==
如果是首次連接服務端,客戶端會收到類似如下信息,讓用戶確認公鑰指紋的有效性:
The authenticity of host '192.168.0.1 (192.168.0.1)' can't be established. RSA key fingerprint is c2:49:d9:43:74:d5:ed:bc:28:9b:d2:7b:63:94:cf:bc. Are you sure you want to continue connecting (yes/no)?
如果之前已經成功連接,而且公鑰指紋對比一致,則會繼續下一步操作。
如果用戶輸入 no ,則連接中斷并報錯(Host key verification failed)。
客戶端生成臨時密鑰對:
服務端公鑰校驗及確認后,客戶端會生成一對臨時密鑰用于客戶端加密。該密鑰對不會存儲到文件,而是記錄在內存中。每次連接都會重新生成臨時密鑰對。
客戶端發送公鑰信息:
客戶端向服務端,發送前述生成的臨時密鑰對中的公鑰信息。相關信息通過明文發送。
至此,服務端及客戶端都擁有對方的公鑰和自身的私鑰,所以稱為非對稱加密。
后續登錄校驗及正常的數據傳輸,都會通過雙向加密方式進行。相關交互說明如下:
如果服務端需要發送數據給客戶端:
服務端使用所持有的客戶端公鑰,對需要傳輸的數據進行加密,再發送給客戶端。
客戶端收到信息后,使用所持有的自身私鑰解密后獲取數據。
反之,如果客戶端需要發送數據給服務端,也是類似的流程:
客戶端使用所持有的服務端公鑰,對需要傳輸的數據進行加密,再發送給服務端。
服務端收到信息后,使用所持有的自身私鑰解密后獲取數據。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP