1

Я пытаюсь установить следующий туннель ssh:

ssh -A -t gatewayuser@gatewayserver 'ssh -N -A -t -R 55520:127.0.0.1:55520 user@dbserver' &

Это часть сценария оболочки, я хочу, чтобы туннель был установлен в фоновом режиме, чтобы сценарий оболочки мог продолжать то, что он делает. Сценарий оболочки также использует:

trap 'kill $(jobs -p)' EXIT

Чтобы убить все дочерние процедуры на выходе.

Когда запускается вышеупомянутый ssh, процесс устанавливается, но кажется, что цепочка обратного туннеля немедленно отбрасывается (т.е. на db-сервере ничего не слушается 55520). Как я могу сделать это в соответствии с требованиями выше?

1 ответ1

0

Кажется, ssh обнаруживает пропущенный пользовательский ввод из-за того, что запускается в фоновом режиме, а затем приостанавливает себя, -t не помогает.

Вместо этого вы можете прочитать его из stdin, например, через ssh [...] < /dev/null & или, возможно, /dev/zero .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .