SSH 通訊協定有 Version1 和 Version2,即 V1 和 V2,V1只支援 RSA 加密,而 V2 支援 RSA 和 DSA 加密方式。
SSHD 有兩對金鑰:
Host Key:放在 /etc/ssh/ 之下,預設長度為 1024 bits,可設定加長至 2048 bits。
Server Key:儲存在 RAM 之中,預設長度為 768 bits,可設定加長至 1024 bits,Server Key 每小時會更新一次。
整個 SSH 通訊加密流程如下:
1. [SSH Client] ---(要求建立 SSH 連線)---> [SSH Server]
2. [SSH Client] <---(傳遞 HostKey 和 ServerKey 的公開金鑰)--- [SSH Server]
3. [SSH Client] ---(產生 SessionKey,再用 HostKey 和 ServerKey 加密:ServerKey(HostKey(SessionKey)),傳至 Server)---> [SSH Server]
4. [SSH Server]:用 HostKey 及 ServerKey 的私密金鑰,將 SessionKey 解密出來。ServerKey.Pri(ServerKey(HostKey(SessionKey))) --> HostKey.Pri(HostKey(SessionKey)) --> SessionKey。
5. [SSH Client] <---(使用 Session Key 加密進行連線)---> [SSH Server]
6. Session Key 每隔固定時間或傳遞了固定大小之後,亦會更換一次,再用同樣的方式傳遞給 SSH Server。
=========================================