Centos

如何防止我對授權密鑰的添加被 puppet 覆蓋?

  • December 13, 2019

在我的公司,所有員工都有一個私鑰,每年都會更新,他們應該用它來連接虛擬機。這裡的 SA 有一個 puppet 腳本,它將查找我的公鑰並將其保存到任何 VM 上的 ~/.ssh/authorized_keys 文件中,以便我可以連接到它。

問題是他們正在覆蓋authorized_keys 文件。這意味著我添加到文件中的任何其他鍵也會被覆蓋。這讓我很沮喪,因為我喜歡能夠從盒子 A 連接到盒子 B,主要是為了我可以 SCP,而且我不想把我的個人私鑰放在盒子 A 上,因為它是一個盒子,多個使用者擁有 sudo 權限。我通常會為每個盒子創建一個新的 ssh 密鑰,並將該盒子的公鑰添加到其他盒子的授權使用者,但這一直被 puppet 擦除。

有什麼方法可以在不更改我不維護的木偶腳本本身的情況下防止其他授權密鑰被覆蓋?

如果做不到這一點,是否有一種簡單的方法可以修改 puppet 腳本以不覆蓋我的添加,但仍然允許它們更新我的公鑰,我可以向 SA 建議?

虛擬機是centos 機器。

有什麼方法可以在不更改我不維護的木偶腳本本身的情況下防止其他授權密鑰被覆蓋?

如果您在伺服器上具有管理訪問權限,則可以配置sshd為在多個位置查找您的授權密鑰。來自sshd_config(5)

AuthorizedKeysFile

Specifies the file that contains the public keys used for user authentication.
The format is described in the AUTHORIZED_KEYS FILE FORMAT
section of sshd(8).  Arguments to AuthorizedKeysFile accept the tokens
described in the TOKENS section.  After expansion, AuthorizedKeysFile
is taken to be an absolute path or one relative to the user's home
directory.  Multiple files may be listed, separated by whitespace.
Alternately this option may be set to none to skip checking for user
keys in files.  The default is ".ssh/authorized_keys
.ssh/authorized_keys2".

如果做不到這一點,是否有一種簡單的方法可以修改 puppet 腳本以不覆蓋我的添加,但仍然允許它們更新我的公鑰,我可以向 SA 建議?

這也應該很容易。ssh_authorized_key資源有一個標誌(預設purge_ssh_keys關閉),用於控制它是否從authorized_keys文件中清除非託管密鑰。

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