Переменная 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 и т. д.) — это некоторые вещи, которые устанавливают переменные среды.

Помните, что вам нужен «.» вместо сценариев, если вы хотите, чтобы их настройки среды, которые они установили, «придерживались».

Другие вопросы по тегам