Переменная SSH_ORIGINAL_COMMAND не устанавливается
Я работаю с двумя серверами, на обоих из которых работает FreeBSD 8.4-RELEASE-p1 и OpenSSH_6.1p1. Оба сервера ssh_config
файлы, расположенные в /etc/ssh
, идентичны. Оба сервера настроены так, чтобы пользователи могли удаленно находиться в тюрьме с использованием SSH.
В качестве теста я вошел в тюрьму тестового пользователя, используя ключи SSH на обоих серверах, используя следующую команду:
ssh -i ~/.ssh/private_key test-user@server.mydomain.com hello
И authorized_keys
В обоих случаях в файле указывается следующая команда, запускаемая после аутентификации, с добавлением открытого ключа (разрешения на обоих серверах одинаковы):
command="~/test.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
куда test.sh
просто выполняет следующую операцию:
#!/bin/sh
echo SSH_ORIGINAL_COMMAND = $SSH_ORIGINAL_COMMAND
На одном сервере вывод из вышеперечисленного sh
Скрипт показывает следующее:
SSH_ORIGINAL_COMMAND = hello
Но на другом сервере результат не сохраняется в SSH_ORIGINAL_COMMAND
SSH_ORIGINAL_COMMAND =
Поведение является одинаковым для соответствующего сервера для каждой пользовательской тюрьмы. Мой вопрос - какая другая конфигурация мне нужна, чтобы SSH_ORIGINAL_COMMAND
переменная, которая будет установлена после аутентификации в случае второго сервера?
1 ответ
Посмотрите /etc/profile и другие сценарии инициализации (~/.bashrc и т. д.) — это некоторые вещи, которые устанавливают переменные среды.
Помните, что вам нужен «.» вместо сценариев, если вы хотите, чтобы их настройки среды, которые они установили, «придерживались».