Sshd

如何保護 ~/.ssh/authorized_keys 文件?

  • November 9, 2021

我有一台啟用了公鑰身份驗證的機器。我在 有一些授權密鑰~/.ssh/authorized_keys

我擔心我曾經錯誤地與我的使用者一起執行惡意腳本/程序(沒有 root 訪問權限)。該腳本將被允許靜默修改~/.ssh/authorized_keys,以允許攻擊者永久獲得對該使用者的遠端訪問並進一步攻擊系統。

  1. 授權密鑰 ( ~/.ssh/authorized_keys) 的預設位置是否存在安全問題?
  2. 是否有不同的方法以更安全的方式保存每個使用者的授權密鑰(即需要 root 訪問權限才能允許新主機)?

sshd 配置文件中有一個選項:AuthorizedKeysFile

使用 Tokens 你可以這樣設置:

AuthorizedKeysFile /etc/sshd.keyfiles/%u.key

下一步是將此文件夾添加到您的 Puppet/Ansible/etc 系統中,並跟踪該文件夾中所有文件的更改。

如果您在這台機器上有 root 訪問權限,那麼您可以嘗試使用以下chattr命令使您的 ssh 文件和目錄不可變,例如:

sudo chattr +i ~/.ssh/authorized_keys
sudo chattr +i ~/.ssh

這將防止您的授權密鑰文件被修改、重命名、刪除或覆蓋。由於只有 root 可以取消設置不變性標誌,這將阻止您以普通使用者身份執行的任何腳本將密鑰插入authorized_keys文件。

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