Объявить переменную через ssh - PullRequest
0 голосов
/ 01 июня 2018

Можно ли объявить глобальную переменную через ssh, чтобы она была доступна из других соединений ssh?для примера ssh firas@10.0.0.1 "x = 10" Может ли другой пользователь x повторить значение x = 10, отправив его на компьютер ssh x@10.0.0.1 "echo $ x"

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Не напрямую, но это довольно легко сделать, если вы используете OpenSSH.Сначала включите PermitUserEnvironment в sshd config и перезапустите sshd.Помните о возможных последствиях для безопасности, как описано в man sshd_config:

 PermitUserEnvironment
         Specifies whether ~/.ssh/environment and environment= options in ~/.ssh/authorized_keys are processed
         by sshd(8).  The default is no.  Enabling environment processing may enable users to bypass access
         restrictions in some configurations using mechanisms such as LD_PRELOAD.

Теперь вы сохраняете новую переменную в ~/.ssh/environment следующим образом:

ssh localhost 'echo variable=new-value-of-the-var > ~/.ssh/environment'

И другой пользователь может прочитать ее:

$ ssh localhost 'echo $variable'
new-value-of-the-var

Обратите внимание, что для этого необходимо использовать одинарные кавычки ' вместо ", чтобы предотвратить расширение вашей оболочки $variable перед передачей ее в ssh.

Тем не менее, это не будет работать, если вы используете dropbear: http://lists.ucc.gu.uwa.edu.au/pipermail/dropbear/2007q3/000615.html

0 голосов
/ 01 июня 2018

Краткий ответ: Нет

Когда вы запускаете ssh на хосте, ваш сеанс порождает подоболочку (дочерний процесс) для работы. Родительский процесс для дочернего процесса будетоболочка на удаленной машине.

Дочерний объект не может влиять на окружение своего родителя.

Таким образом, любой подоболочек, порожденный для обработки вашего ssh-соединения, не может установить переменную, которая останется после закрытия соединения.

note: Однако вы можете записать файл на хост-компьютере, который будет доступен для последующих подключений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...