如何為另一台無法存取的機器設定 ssh 公鑰?

如何為另一台無法存取的機器設定 ssh 公鑰?

這可能是一個愚蠢的問題,但我還是必須問:
我已經為我的客戶端機器 A 設定了 ssh 公鑰。

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

我目前看到的唯一解決方案似乎是將 USB 棒上的新公鑰帶到客戶端電腦 A 並將其從那裡複製到伺服器,但這似乎有點乏味,並且當位於 n 台電腦時不太實用彼此之間距離比較遠。

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

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

答案1

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

如果沒有 USB 記憶棒,也有一些選項。

變數#1。暫時啟用機器 A 上伺服器的密碼登入。禁用密碼登入伺服器。

變數#2。如果即使是臨時密碼登入也被視為安全缺陷,請在伺服器上建立除了主目錄之外無權存取任何內容的臨時用戶,僅此使用者啟用密碼登入。產生金鑰對並將公鑰從電腦 B、C、D 等複製到伺服器到該使用者的主目錄。 Pubkey 不是機密,其潛在的隱藏被認為是安全的情況,但其欺騙則不然,因此您可以考慮以某種方式對其進行加密或簽署 (gpg)。從機器A登入伺服器,將pubkey傳播給伺服器的用戶,停用使用的臨時用戶。

變數#3。如果無法重新啟動 ssh 伺服器,您可以將電腦 A 作為臨時 ssh 伺服器,並將其用作中間站,將 ssh 公鑰複製到真實伺服器。

變數#4。使用另一個通訊管道(另一個遠端伺服器,甚至可能是公共伺服器、電子郵件等)。再次強調,公鑰不是機密,但請務必對其進行簽名以防止欺騙。

答案2

好吧,您必須將公鑰傳輸到遠端伺服器不知何故

然而,由於公鑰不是保密的(因此得名),因此可以隨意將其複製到 USB 記憶棒上、將其上傳到某處、將其放入便箋中等......

只需確保您在伺服器上新增的金鑰確實是您從客戶端上傳的金鑰即可!

答案3

我通常透過複製和貼上來移動 ssh 密鑰。但您也可以透過電子郵件、http、netcat 等發送它們,它們只是文字。

如果您可以將機器 C 的公鑰取得到機器 B 上,則可以從 B 到 A 進行 ssh 並安裝 C 的金鑰

相關內容