Linux

了解ssh自動登錄和安全問題

  • February 18, 2020

我已經生成了一對私有/公共 ssh 密鑰(在 Linux 上),它們現在在我的.ssh文件夾中。

我已將我的 ssh id ( ssh-copy-id) 複製到我想要連接的遠端機器上,而無需一直鍵入我的密鑰。

複製我的 ssh id 後,我無需輸入密碼就可以連接到機器,並且我在 中仔細檢查.ssh/authorized_keys了唯一授權的公鑰是我剛剛複制的那個(這很好)。

但是,我看到了兩個問題:

首先,由於某種原因,ssh-copy-id我的私鑰也複製到了那台機器上。我刪除了它,因為它似乎是一個很大的安全整體,將你的私鑰傳播到其他機器上。它是否正確?

其次,我看到我的公鑰現在是用.ssh/authorized_keys. 此文件的權限已配置,因此只有我的使用者可以讀取它 ( -rw-------)。不過,如果有人設法訪問此內容,他/她可以在沒有密碼的情況下訪問我的遠端電腦,這是正確的嗎?我已經看到,在我的本地電腦上,這個文件已經生成了允許任何其他使用者(登錄機器)讀取它的權限。這不是安全漏洞嗎?我應該更改權限以便只有我的使用者可以讀取文件的內容嗎?

最後,在連接到遠端機器時,哪個密鑰實際上用於非常我的身份,私有密鑰還是公共密鑰?

  1. ssh-copy-id應該只將公鑰複製到authorized_keys,它不應該複製您的私鑰。您確定您沒有手動將任何其他內容複製到遠端電腦上,或者您是否還在遠端電腦上生成了一組密鑰(使用預設文件名)?
  2. 不,只有當有人可以編寫他們自己的公鑰時,authorized_keys他們才能像你一樣訪問那台機器。能夠讀取該文件不允許訪問任何其他機器。
  3. 兩個都。當您嘗試連接時,您的私鑰用於簽署遠端電腦提出的質詢,然後使用公鑰在遠端電腦上進行檢查,以證明是您的私鑰簽署了質詢。

我建議你去看看非對稱加密是如何工作的。

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