Команда работает, но при запуске из скрипта возникает ошибка «Отказано в доступе»

Команда работает, но при запуске из скрипта возникает ошибка «Отказано в доступе»

Следующая команда отлично работает с моего локального хоста, и я получаю желаемый вывод. Смотрите ниже

$ ssh -o ConnectTimeout=7  -o BatchMode=yes [email protected] "echo WORKS;exit"
Output:
WORKS

Теперь я помещаю эту команду в файл скрипта, test.shимеющий достаточные права на выполнение.

$ cat test.sh
segment=$(ssh -o ConnectTimeout=7  -o BatchMode=yes [email protected] "echo WORKS;exit")
echo "SEGMENT $segment"

Я не получаю желаемого результата. Фактически я получаю следующую ошибку:

$ ./test.sh
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
SEGMENT

я ожидал

SEGMENT WORKS

Теперь ошибка «Отказано в доступе» исчезает, но

Можете ли вы подсказать, в чем может быть проблема?

решение1

Проблема была в том, что я использовал псевдоним

alias ssh=ssh -i /app/private_key

хранится в профиле пользователя. Однако эта настройка не действует в скрипте оболочки (см.здесьнапример), поэтому мне пришлось явно вызвать

ssh -i app/private_key

в скрипте. Это решило проблему.

Связанный контент