Переменная SSH_ORIGINAL_COMMAND не устанавливается

Я работаю с двумя серверами, оба из которых работают под управлением FreeBSD 8.4-RELEASE-p1 и OpenSSH_6.1p1. Файлы ssh_config обоих серверов, расположенные в /etc/ssh, идентичны. Оба сервера настроены так, чтобы пользователи могли удаленно входить в jailed окружение с помощью 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 быть установленной после аутентификации в случае второго сервера?

9
задан 17 September 2014 в 19:58
1 ответ

Посмотрите в /etc/profile и другие сценарии инициализации (~/.bashrc и т.д.) — это некоторые вещи, которые устанавливают переменные среды.

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

1
ответ дан 26 February 2021 в 01:07

Теги

Похожие вопросы