ssh中PermitUserEnvironment的安全风险

标签 security ssh environment-variables production-environment

我已经阅读了很多关于 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/

相关文章:

sql - 是否可以防止在 sql 数据库级别进行批量更新?

linux - ssh & perl & 在后台运行

php - 通过网页(html 和 php)通过 SSH2 连接到远程计算机

java - Windows 右上角的感叹号 - 在关闭按钮上方

node.js - AWS,NodeJS - 将应用程序连接到另一个 EC2 实例上的 Mongodb

macos - 如何在 OS X 中重新启动终端/环境变量

linux - 当基本命令不起作用时,如何恢复 ~/.bashrc 中的 PATH?

powershell - 使用路径中的环境变量运行 EXE 文件(PowerShell)

ios - DeviceCheck 或 indentifierForVendor 安全吗?

ruby - 从Ruby Net::SSH session 获取输出