若要使用 SSH 用戶端程式 ssh 與 scp,伺服器 (SSH 精靈) 必須在背景執行,監聽 TCP/IP port 22 的連線。精靈會在第一次啟動時產生三個金鑰組合。每個金鑰組合都是由私密與公用金鑰所組成。Therefore, this procedure is referred to as public key–based. 為了保證透過 SSH 通訊的安全性,必須限制只有系統管理員可以存取私密金鑰檔。預設安裝會據此設定檔案權限。SSH 精靈只有在本地上需要私密金鑰,而且絕對不能將它給予任何人。公用金鑰元件 (以 .pub 的副檔名來識別) 會傳送至要求連線的用戶端。它們可讓所有的使用者讀取。
SSH 用戶端所啟始的連線。等待 SSH 精靈與要求 SSH 用戶端交換識別資料,以比較通訊協定與軟體版本,並防止透過錯誤埠的連線。因為原始 SSH 精靈的子處理序會回覆要求,所以可以同時建立數個 SSH 連線。
至於 SSH 伺服器與 SSH 用戶端之間的通訊,OpenSSH 可以支援 SSH 通訊協定的版本1 與 2。預設會使用 SSH 通訊協定的版本 2。使用 - 1 參數即可覆寫此預設以使用通訊協定的版本 -1。若要在系統更新後繼續使用版本 1,請遵循 /usr/share/doc/packages/openssh/README.SuSE 中的指示。這個文件也描述如何只執行一些步驟,即將 SSH 1 環境轉換成工作 SSH 2 環境。
當使用 SSH 的版本 1 時,伺服器會傳送每小時由 SSH 精靈重新產生的公用主機金鑰與伺服器金鑰。這兩者都允許 SSH 用戶端加密自由選擇的工作階段金鑰,並且會將它傳送至 SSH 伺服器。SSH 用戶端也會指示伺服器要使用的加密方法 (密碼)。
SSH 通訊協定的版本 2 並不需要伺服器金鑰。兩邊都是使用根據 Diffie-Helman 的演算法來交換金鑰。
私密主機與伺服器金鑰絕對需要解密工作階段的金鑰,而且不能從公用部份產生。只有連絡的 SSH 精靈可以使用私密金鑰解密工作階段金鑰 (請參閱 man/usr/share/doc/packages/openssh/RFC.nroff)。若要仔細監看此啟始連線階段,可以開啟 SSH 用戶端的 -v 詳細偵錯選項。
用戶端會在第一次與遠端主機連繫後,將所有的公用主機金鑰儲存在 ~/.ssh/known_hosts 中。這將可防止外來的 SSH 伺服器進行「在中間攔截的攻擊」 (外部 SSH 伺服器使用假冒的名稱與 IP 位址)。這類的攻擊通常都是由下列方式所偵測出來:在 ~/.ssh/known_hosts 中未包含主機金鑰,或伺服器在缺少適當的私密對照組時無法解密工作階段的金鑰。
建議將儲存在 /etc/ssh/ 中的私密與公用金鑰備份在安全的外部位置。以此方式,就可以偵測出金鑰的修改,並且可以在重新安裝後,再度使用舊的金鑰。這可讓使用者避免收到任何擾人的警告。儘管出現警告,但是如果已確認它確實是正確的 SSH 伺服器,就必須從 ~/.ssh/known_hosts 移除關於此系統的現有項目。