Linux

如何為另一台沒有訪問權限的機器設置 ssh 公鑰?

  • August 4, 2021

這可能是一個愚蠢的問題,但無論如何我還是要問:

我已經為我的客戶端機器 A 設置了一個 ssh 公鑰。我將公鑰複製到遠端伺服器,一切正常,我可以從機器 A 登錄。

現在我還想從另一台機器訪問該伺服器並遵循最佳實踐,我想為客戶端機器 B 生成另一個密鑰,而不是再次使用來自機器 A 的密鑰。當然,我可以生成密鑰對,但我無法將該新公鑰複製到伺服器,因為客戶端機器 B 無法訪問伺服器,只有 A 可以。

我目前看到的唯一解決方案似乎是將 USB 記憶棒上的新公鑰帶到客戶端機器 A 並從那裡複製到伺服器,但是當找到 n 台機器時,這似乎有點乏味且不太實用彼此相距甚遠。

這樣做的正確方法是什麼?

客戶端和伺服器都執行 Linux。

不確定是否有正確的方法,您仍然需要以某種方式訪問伺服器,並且由於機器 A 目前只是訪問點,您仍然需要至少一次物理地獲取它以及其他 n 台機器。那麼,為什麼不將所有公鑰收集到 U 盤並將其移動到機器 A 以傳播到伺服器使用者的主 .ssh 配置目錄?

如果沒有 U 盤,也有一些選項。

變數 #1。臨時啟用從機器 A 上的伺服器上的密碼登錄。以正常方式從機器 B、C、D 等生成密鑰對並將公鑰複製到伺服器。禁用密碼登錄伺服器。

變數 #2。如果即使臨時密碼登錄也被認為是安全漏洞,請在伺服器上創建一個只能訪問其主目錄的臨時使用者,僅為該使用者啟用密碼登錄。生成密鑰對並將 pubkeys 從機器 B、C、D 等複製到伺服器到該使用者的主目錄。Pubkey 不是機密的,它的潛在隱藏被認為是一種安全的情況,但它的欺騙不是,所以你可以考慮以某種方式加密或簽名(gpg)。從機器 A 登錄到伺服器,將 pubkey 傳播給伺服器的使用者,禁用使用的臨時使用者。

變數 #3。如果 ssh 伺服器重新啟動不是一個選項,您可以將機器 A 設置為臨時 ssh 伺服器,並將其用作將 ssh pubkey 複製到真實伺服器的中間站。

變數 #4。使用另一個通信渠道(另一個遠端伺服器,甚至可能是公共的,電子郵件等)。再一次,pubkey 不是機密文件,但請確保簽署它們以防止欺騙。

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