В настоящее время я пишу сценарий Bash, который создает туннель SSH. Как только это будет сделано, я бы хотел, чтобы скрипт открывал новый локальный (!) интерактивная оболочка, чтобы я мог работать в моей системе с открытым туннелем SSH.
После того, как я наберу команду exit
локальная оболочка должна быть закрыта, и оригинальный скрипт продолжит работу.
Мой текущий подход в основном выглядит так:
#!/usr/bin/env bash
set -e
ssh -N user@ip -L xxx:xxx &
SSH_CONNECTION=${!}
trap "kill ${SSH_CONNECTION}" ERR
sleep 3
bash -i
kill ${SSH_CONNECTION}
Пока все работает - кроме запуска локальной оболочки. Я на самом деле получаю оболочку, и я даже могу набрать ее, но ничего не происходит, когда я нажимаю <Return>
.
Есть идеи, что я делаю не так?