6

为了将环境变量传递给 ssh shell,我已经阅读了很多关于使用PermitUserEnvironment和文件的帖子。~/.ssh/environment官方sshd 文档和其他一些资源暗示了这样做的一些安全风险。

Enabling environment processing may enable users to bypass access restrictions in some configurations using mechanisms such as LD_PRELOAD.

激活的可能安全问题是PermitUserEnvironment什么?我希望在这些环境变量中保存数据库连接详细信息,这是否可取?

谢谢

4

1 回答 1

4

它适用于您通过使用自定义外壳以某种方式限制用户的情况 - 如果用户能够设置 LD_PRELOAD 那么他们可以通过拦截标准库调用在远程机器上以用户身份执行代码。

一个简单的例子可能是,如果您通过将其 shell 设置为动态链接的 /bin/false 来禁用仅 SFTP 用户的登录 - 如果他们能够修改 ~/.ssh/environment 或 ~/.ssh/authorized_keys然后他们可以添加 LD_PRELOAD=nefarious.so

于 2014-02-21T14:47:20.353 回答