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

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

我有一台启用了公钥身份验证的机器。我在 处有一些授权密钥~/.ssh/authorized_keys

我担心我曾经错误地使用我的用户(没有 root 访问权限)运行恶意脚本/程序。该脚本将被允许进行静默修改,~/.ssh/authorized_keys以允许攻击者永久获得该用户的远程访问权限并进一步攻击系统。

  1. 授权密钥 ( ) 的默认位置是否存在~/.ssh/authorized_keys安全问题?

  2. 是否有不同的方法以更安全的方式保存每个用户的授权密钥(即需要根访问权限才能允许新主机)?

答案1

如果您在此计算机上具有 root 访问权限,那么您可以尝试使用以下命令使 ssh 文件和目录不可变chattr命令,例如:

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

这将防止您的授权密钥文件被修改、重命名、删除或覆盖。由于只有 root 可以取消设置不变性标志,这将阻止您作为普通用户运行的任何脚本将密钥插入到您的authorized_keys文件中。

答案2

sshd 配置文件中有一个选项:AuthorizedKeysFile

使用令牌你可以这样设置:

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

下一步是将此文件夹添加到您的 Puppet/Ansible/etc 系统中,并跟踪该文件夹中所有文件的更改。

答案3

ssh 如何防止使用“mount --bind”欺骗主文件夹?我做了一个测试,并将主文件夹与另一个文件夹安装在不同的硬盘上。使用命令 ssh-copy-id 后,客户端的密钥已正确导入到 /home/.ssh/authorized_keys 中,并且在使用“sudo chmod 755 ~”更改主文件夹的访问权限后,它就像一个魅力一样,它不再需要输入密码。

相关内容