Использование ssh в cron-скрипте

У меня проблема с ssh от crontab против устройства хранения Fujitsu DX200.

При запуске команды из терминала все работает нормально, используя ключи RSA, но когда я вставляю эту команду в скрипт и запустите его из cron с ошибкой: «Pseudo-terminal не будет выделен, потому что stdin не является терминалом».

Команда ssh user@dx200 "show performance -type host-io"

Согласно многим статьям в сети , добавив ряд -t в качестве аргумента в ssh, он должен принудительно выделить PTY. В RedHat, где был разработан скрипт, он работает, добавляя -t -t -t (или -ttt), но это не так, когда вы работаете на Ubuntu.

Использование ssh -T (Disable pseudo-tty allocation) приводит к сбою входа в dx200 с «FUJITSU Storage ETERNUS login требуется ...», то есть не регистрируется ключ RSA.

Другие решения из сети с использованием вариантов ssh ... /bin/bash <<EOF ... невозможны, потому что мы не можем запустить оболочку на устройстве хранения.

Любые идеи о том, как обойти эту проблему? [ ! d6]

2
задан 3 May 2018 в 14:36

3 ответа

Отвечая на мой вопрос ...

Добавление дополнительного аргумента -t в ssh разрешило проблему.

Теперь команда выглядит как ssh -t -t -t -t user@dx200 ...... (-tttt should сделайте то же самое).

Страница man на ssh говорит об этом -t:

-t Force pseudo-tty allocation. This can be used to execute arbi- trary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.

Но ничего о том, сколько «множественных», или что в коде ssh, что определяет количество -t необходимых параметров.

1
ответ дан 17 July 2018 в 15:22

Отвечая на мой вопрос ...

Добавление дополнительного аргумента -t в ssh разрешило проблему.

Теперь команда выглядит как ssh -t -t -t -t user@dx200 ...... (-tttt should сделайте то же самое).

Страница man на ssh говорит об этом -t:

-t Force pseudo-tty allocation. This can be used to execute arbi- trary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.

Но ничего о том, сколько «множественных», или что в коде ssh, что определяет количество -t необходимых параметров.

1
ответ дан 20 July 2018 в 15:48

Отвечая на мой вопрос ...

Добавление дополнительного аргумента -t в ssh разрешило проблему.

Теперь команда выглядит как ssh -t -t -t -t user@dx200 ...... (-tttt should сделайте то же самое).

Страница man на ssh говорит об этом -t:

-t Force pseudo-tty allocation. This can be used to execute arbi- trary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.

Но ничего о том, сколько «множественных», или что в коде ssh, что определяет количество -t необходимых параметров.

1
ответ дан 23 July 2018 в 16:18

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

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