`ssh [...] sleep 3` (sshpass 사용) 절대 닫지 마세요

`ssh [...] sleep 3` (sshpass 사용) 절대 닫지 마세요

다음을 사용하여 프로그래밍 방식으로 SSH 터널을 엽니다.

sshpass -p "my_password" ssh -fN -o StrictHostKeyChecking=no -o ExitOnForwardFailure=yes remote_user@remote_server.tld -L 13306:127.0.0.1:3306 sleep 3

예상대로 작동하지만 3초 동안 활동이 없으면 닫히지 않습니다.

SSH PID를 가져와 연결이 완료되면 명시적으로 종료합니다. 하지만 저는 sleep터널을 자동으로 닫을 수 있는 버전을 선호합니다.

sshpass터널을 열어두는 데 사용합니까 , 아니면 제가 뭔가 잘못하고 있는 것입니까?

답변1

당신은 사용하고 있습니다

-f

명령 실행 직전에 ssh에 백그라운드로 이동하도록 요청합니다. 이는 ssh가 비밀번호나 패스프레이즈를 요청하지만 사용자가 백그라운드에서 이를 원하는 경우에 유용합니다. 이는 -n을 의미합니다. 원격 사이트에서 X11 프로그램을 시작하는 데 권장되는 방법은 ssh -f host xterm과 같은 것입니다.

그리고

-N

원격 명령을 실행하지 마십시오. 이는 포트를 전달하는 데 유용합니다.

명령을 실행하기 전에 백그라운드로 이동합니다(억제됨). 따라서 백그라운드에 유지됩니다. 이 프로그램 sleep은 실행되지 않으며 종료될 때까지 기다립니다.

관련 정보