Ssh

在客戶端與伺服器上生成 ssh 密鑰之間的優缺點

  • March 9, 2018

如果我想讓另一個使用者能夠 ssh 進入我的 ec2 實例,那麼在 ec2 實例中為該使用者生成 ssh 密鑰,然後將私鑰複製到該使用者的本地電腦之間是否有任何利弊?新使用者在其本地電腦上生成 ssh 密鑰並將公鑰複製到 ec2 實例授權密鑰?

如果使用者只是在他們的本地電腦上生成 ssh 密鑰會更安全嗎,因為您只是複制公鑰而不必複製私鑰?

在我概述這兩種方法的任何好處之前,我要指出,這類事情的行業標準是在客戶端系統而不是伺服器上生成密鑰對,主要是因為它提供了更好的使用者體驗。

現在,對於優點和缺點,它們幾乎是相輔相成的,所以我只列出每種方法的優點。

在客戶端生成密鑰:

  • 與 ssh 的直接簡單集成。如果您使用 ssh 本身生成密鑰並且它是您唯一的密鑰,它會自動在預設情況下使用的正確位置結束,從而為非技術使用者簡化操作。
  • 理論上,用於生成密鑰的熵質量在客戶端系統上可能會比 EC2 實例更好(VM 的熵非常低)。
  • 使用者始終知道私鑰的確切位置,這對於驗證密鑰的安全性很重要。
  • 如果使用者已經有一個 SSH 密鑰(並且作為一般規則,人們經常使用 SSH),他們可以為此發送公鑰,而不必處理管理多個密鑰對(這很痛苦)。

在 EC2 實例上生成密鑰:

  • 將密鑰複製到 EC2 實例上的所需位置很簡單。
  • 降低客戶端系統上的負載。
  • 執行最低安全要求更容易。

請注意,我在上面明確沒有列出任何關於複製私鑰而不是公共密鑰的安全隱患。這是因為安全隱患完全取決於您用來複製它們的機制的安全性。

引用自:https://unix.stackexchange.com/questions/429331