Sshd
如何保護 ~/.ssh/authorized_keys 文件?
我有一台啟用了公鑰身份驗證的機器。我在 有一些授權密鑰
~/.ssh/authorized_keys
。我擔心我曾經錯誤地與我的使用者一起執行惡意腳本/程序(沒有 root 訪問權限)。該腳本將被允許靜默修改
~/.ssh/authorized_keys
,以允許攻擊者永久獲得對該使用者的遠端訪問並進一步攻擊系統。
- 授權密鑰 (
~/.ssh/authorized_keys
) 的預設位置是否存在安全問題?- 是否有不同的方法以更安全的方式保存每個使用者的授權密鑰(即需要 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
文件。