Я работаю с двумя серверами, оба из которых работают под 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
file в обоих случаях указывает следующую команду, которая будет запущена после аутентификации, добавленная к открытому ключу (разрешения одинаковы на обоих серверах):
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
переменная, которая будет установлена после аутентификации для второго сервера?