Ssh

使用另一台機器上備份的 SSH 密鑰訪問伺服器

  • July 10, 2018

我創建了一個伺服器,並將 SSH 配置為不允許 root 登錄並禁用密碼訪問,因此只接受 SSH 密鑰登錄。

我有一台帶密鑰的機器 A,我可以從那台機器訪問我的伺服器,沒有任何問題。

還要備份這些密鑰,以防萬一。

假設我的機器 A 明天死了,我得到了一台新機器 B,當然需要訪問我的伺服器。

在這裡,我不知道事情是如何運作的。我應該只將備份中的密鑰複製到機器 B 上,這樣我就可以訪問我的伺服器了嗎?還是應該通過一些 OpenSSH 命令導入密鑰?

所以我的第一個疑問是關於備份導入,因為我害怕完全失去對我伺服器的訪問權限。

第二個是關於我為機器 A 上的密鑰設置的密碼。這對我複制的密鑰仍然有效嗎?或者通過導入我需要在新機器上設置一個新的密碼。

謝謝。

SSH 密鑰有兩部分:

  • 應該用強密碼保護的私鑰
  • 應複製到伺服器的公鑰(通常以 .pub 後綴結尾)

您可以隨意移動這兩個部分,儘管我不建議您公開放置私有部分(即使是加密的)。

私有部分放置在 ~/.ssh/ 目錄中的任何本地機器上。預期的鍵名是

  • id_rsa
  • id_rsa 證書
  • id_dsa
  • id_dsa 證書
  • id_ecdsa
  • id_ecdsa-cert
  • id_ed25519
  • id_ed25519-cert

如果您的密鑰具有相應的名稱之一,那麼您就可以使用了。如果您需要使用某些特定鍵,則必須使用參數*-i*

/usr/bin/ssh -i <path_to_key_file>

公共伺服器部分也是如此。在使用者主目錄中必須存在一個文件 ~/.ssh/authorized_keys。此文件包含所有允許以使用者身份登錄的公鑰- 每行一個。註釋部分可以省略。

也就是說,在您想使用任何 SSH 密鑰的任何伺服器上,將公共部分複製到 authorized_keys 文件的新行中。

我建議您學習 SSHD (man sshd) 的手冊頁,尤其是“AUTHORIZED_KEYS FILE FORMAT”部分。

另外我認為我還應該警告您,如 sshd 手冊頁中所述,主目錄、~/.ssh 目錄和 ~/.ssh/authorized_keys 文件的文件系統權限有一些規則,簡而言之,它是不可寫的被別人。

 ~/.ssh/authorized_keys
         Lists the public keys (DSA/ECDSA/RSA) that can be used for logging in as this user.  The format of this file is described
         above.  The content of the file is not highly sensitive, but the recommended permissions are read/write for the user, and
         not accessible by others.
         If this file, the ~/.ssh directory, or the user's home directory are writable by other users, then the file could be modi‐
         fied or replaced by unauthorized users.  In this case, sshd will not allow it to be used unless the StrictModes option has
         been set to “no”.

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