Bash 스크립트에서 대화형 셸 실행

Bash 스크립트에서 대화형 셸 실행

현재 SSH 터널을 생성하는 Bash 스크립트를 작성 중입니다. 이 작업이 완료되면 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>.

내가 뭘 잘못하고 있는지 아시나요?

답변1

-f연결이 설정되면 연결이 백그라운드로 전환되도록 사용해야 합니다 . 그러면 다음이 필요하지 않습니다 &.

ssh -Nf  -L xxx:xxx user@ip

처리가 bash.

관련 정보