Ssh

sshd:記錄客戶端的公鑰

  • March 28, 2015

我需要執行 SSH 伺服器並記錄任何嘗試連接的客戶端的 IP 和公鑰(實際上沒有授予訪問權限)。

案例是這樣的:我將此 Web 應用程序部署到遠端主機,在建構過程中,該主機從 github/bitbucket 獲取一些依賴項(git 使用 ssh,它使用密鑰)。現在,如果我希望這個託管伺服器能夠訪問一些私有儲存庫,我需要將它的公鑰列入白名單,但是主機不提供直接從文件系統讀取密鑰的訪問權限。但我可以將它指向任何 SSH 主機,它會建立連接,大概是分發它的公鑰。我想記錄這個。

任何建議表示讚賞。

如果您需要將公鑰列入白名單,則無法從失敗的嘗試中選擇它。它根本不是關於 sshd 或其配置,而是協議本身,因為公鑰身份驗證是這樣的:

  1. 客戶端發送密鑰對的 ID。
  2. 伺服器將 ID 與authorized_keys文件進行比較。
  3. 伺服器生成一個隨機數並使用匹配的公鑰對其進行加密。
  4. 伺服器將其發送給客戶端。
  5. 客戶端對其進行解密,將其與共享會話密鑰組合併發送回其 MD5。
  6. 伺服器自己計算相同的校驗和並將它們一起比較。

在失敗的嘗試中,這將在第 2 步停止,以防止一切進一步發生。然而,整個公鑰永遠不會發送到伺服器,只是 ID。

一個人不會簡單地記錄他甚至不知道的東西。

引用自:https://serverfault.com/questions/678928