authorized_keys Environment Variables Not Setting Environment Variables
I have created the file ~/.ssh/environment in there I put:
LEVEL=0
When I run a script over ssh to get the environment variable level it returns 0 like it should.
In the authorized_keys file I have several keys and am trying to change the value on a few so when I run a script on the other side it can modify how it process information. I am adding the following before the normal key:
command="/path/to/script" environment="LEVEL=1"
If I don't have the environment segment the script is executed fine, but if I have the environment part set then the script won't run.
I am not exactly sure what I am doing wrong. Am I even approaching this correctly?
essentially I have 4 different keys and in some cases I want people to have a level 1 or 2 with the default of 0, but I want to set who has the level and have it only set while they are logged in to execute their command.
I think I am barely understanding how it is supposed to work so my understanding could be completely wrong on how this should work.
Any ideas?
Solution 1:
Try this:
command="export LEVEL=1; /path/to/script"
Solution 2:
First guess is that your syntax is slightly off.
I've never personally used the "environment" argument before, but from having to write custom authorized_keys entries before, I believe that optional arguments at the beginning of an authorized_keys entry require commas between each argument, not spaces.
Try:
command="path/to/script",environment="LEVEL=1" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArestofkeyhere comment_stuff
Hope this helps.
Solution 3:
There option PermitUserEnvironment in config file /etc/ssh/sshd_config has default value to no
So to enable processing file ~/.ssh/environment
or/and environment=
options in ~/.ssh/authorized_keys
set above variable in yes