我已经创建了文件 ~/.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
希望这可以帮助。