【发布时间】:2016-02-17 17:36:17
【问题描述】:
我正在使用 sshd_config 变量 PermitUserEnvironment
#/etc/ssh/sshd_config
PermitUserEnvironment yes
在 /root/.ssh/authorized_keys 文件中的每个键上设置类似“REALUSERNAME”的内容。
#/root/.ssh/authorized_keys
environment="REALUSER=custom_value" ssh-rsa AAAAB3....
但我无法访问由 /etc/pam.d/sshd 中的 pam_exec 触发的脚本中的值
我最好的猜测是 pam 脚本是在设置环境变量之前执行的?那么我有什么选择呢?
我试过 pam_env
#/etc/security/pam_env.conf
PAM_REALUSER DEFAULT="unkonwn" OVERRIDE=${REALUSER}
这是我的 pam.d/ssh 文件的自定义部分
#/etc/pam.d/sshd
session required pam_env.so readenv=1
session optional pam_exec.so seteuid /usr/local/bin/scripts/my_script
甚至像 SSH_CONNECTION 这样的变量似乎都不可用,这让我感觉很奇怪。这些信息在脚本执行时肯定是可用的,但变量没有设置或者我做错了。
我曾经(成功地)在 /etc/profile 中触发脚本,所以我非常确信问题不在我的自定义脚本中
【问题讨论】:
-
允许用户将环境变量注入 PAM 环境会产生安全隐患。我怀疑 OpenSSH 的人会在没有令人信服的理由的情况下允许这样做。
-
@Kenster as
PermitUserEnvironment yes本身就有安全隐患,我不确定这会有什么不同。但是话说回来我真的没有足够的知识来判断