Firefox와 함께 SSH 터널을 어떻게 열고 닫을 수 있나요?

Firefox와 함께 SSH 터널을 어떻게 열고 닫을 수 있나요?

이렇게 연결하는 프록시 서버가 있습니다

ssh -L 2001:localhost:8888 -N myserver.com -p 443  

그런 다음 Firefox를 엽니다.

firefox -p "SSHProxy"

(포트 2001을 사용하도록 구성된 Firefox가 시작됩니다). 조금 탐색한 다음 Firefox를 닫고 터널을 중지합니다.

내가 하고 싶은 것은 그것을 자동화하는 것입니다. 터널을 열고 Firefox를 엽니다. Firefox를 닫으면 터널도 닫고 싶습니다.

간단한 스크립트로 이것이 가능합니까?

나는 시도했다

ssh -L 2001:localhost:8888 -N myserver.com -p 443 && firefox -p "SSHProxy"

하지만 SSH 비트만 실행되고 Firefox는 열리지 않습니다. 순서를 바꾸면 Firefox를 닫은 후에만 SSH가 열립니다.


아래의 도움을 받아 이 단순화된 스크립트를 사용했습니다.

#!/bin/bash -e

#Start SSH
ssh -L 2001:localhost:8888 -Nf myserver.com -p 443 &

#Start Firefox
firefox -p "SSHProxy" &

#Kill the SSH port 2001 when Firefox stops
trap "ps aux | grep ssh | grep 2001 | awk '{print \$2}' | xargs kill" EXIT SIGINT SIGTERM

wait

답변1

배열을 사용하여 PID를 저장한 다음 트랩하고 죽이는 bash 스크립트를 만드는 것은 어떻습니까?

#!/bin/bash -e

ssh -L 2001:localhost:8888 -N myserver.com -p 443 &
PID[0]=$!
firefox -p "SSHProxy" &
PID[1]=$!
trap "kill ${PID[*]}" INT SIGINT        
wait

비밀번호를 사용해야 하는 경우 여기에서 다음을 확인하세요 sshpass.https://stackoverflow.com/questions/16937104/provide-password-to-ssh-command-inside-bash-script-without-the-usage-of-public

편집하다:

터미널에서 스크립트를 실행합니다. 검색. 검색이 끝나면 터미널로 돌아가서 Ctr-C(INT/SIGINT) 키를 누르면 프로세스가 정리됩니다. 그것은 나를 위해 일하는 것 같았습니다.

관련 정보