我已经阅读了很多关于 PermitUserEnvironment
使用的帖子。和文件 ~/.ssh/environment
为了将 env 变量传递给 ssh shell。官方sshd docs和其他一些资源暗示了这样做的一些安全风险。
Enabling environment processing may enable users to bypass access restrictions in some configurations using mechanisms such as LD_PRELOAD.
激活
PermitUserEnvironment
可能存在哪些安全问题?我希望在这些环境变量中保存数据库连接详细信息,这是可取的吗?谢谢
最佳答案
它适用于您通过使用自定义 shell 以某种方式限制用户的情况 - 如果用户能够设置 LD_PRELOAD,那么他们可以通过拦截标准库调用在远程机器上以用户身份执行代码。
一个简单的例子可能是,如果您通过将其 shell 设置为动态链接的/bin/false 来禁用仅 SFTP 用户的登录 - 如果他们能够修改 ~/.ssh/environment 或 ~/.ssh/authorized_keys然后他们可以添加 LD_PRELOAD=nefarious.so
关于ssh中PermitUserEnvironment的安全风险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17559341/