authorized_keys 环境变量未设置环境变量

authorized_keys 环境变量未设置环境变量

我已经创建了文件 ~/.ssh/environment,并在其中输入:

LEVEL=0

当我通过 ssh 运行脚本来获取环境变量级别时,它会返回 0,正如它应该的那样。

在 authorized_keys 文件中,我有几个密钥,并尝试更改其中几个密钥的值,以便当我在另一端运行脚本时,它可以修改其处理信息的方式。我在普通密钥之前添加了以下内容:

command="/path/to/script" environment="LEVEL=1"

如果我没有环境部分,脚本可以正常执行,但如果我设置了环境部分,那么脚本将无法运行。

我不太清楚我做错了什么。我的做法正确吗?

本质上我有 4 个不同的密钥,在某些情况下,我希望人们拥有级别 1 或 2,默认值为 0,但我想设置谁拥有该级别,并且仅在他们登录执行他们的命令时设置它。

我想我几乎不了解它应该如何工作,所以我对它应该如何工作的理解可能是完全错误的。

有任何想法吗?

答案1

尝试这个:

command="export LEVEL=1; /path/to/script"

答案2

有选择许可证用户环境在配置文件中/etc/ssh/sshd_config具有默认值

因此,要启用处理文件~/.ssh/environment或/和environment=选项,请在~/.ssh/authorized_keys上述变量中​​设置是的

答案3

第一个猜测是你的语法有点不对。

我以前从未亲自使用过“环境”参数,但是从以前必须编写自定义authorized_keys条目开始,我相信authorized_keys条目开头的可选参数需要每个参数之间有逗号,而不是空格。

尝试:

command="path/to/script",environment="LEVEL=1" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArestofkeyhere comment_stuff

希望这可以帮助。

相关内容