sshpass -p '1234567*' ssh -L 1080:192.168.0.1:2222 [email protected] -p 4422 -f -C -N
위 코드는 macOS에서 작동합니다(사용자 이름 admin 및 비밀번호 1234567*을 사용하여 Gateway.com:4422를 통해 192.168.0.1:2222에 대한 1080 터널 생성). \
Linux에서는 작동하지 않습니다. 프로세스가 즉시 실행되고 종료되는 것 같습니다.
답변1
sshpass
+의 문제점 ssh
은 ssh
먼저 사용자를 인증하고 연결을 처리하기 위해 하위 프로세스를 포크한 다음 종료된다는 것입니다. 그러나 sshpass
상위 ssh
프로세스가 종료되면 터미널에서 분리되기 전에(생성된 의사 tty에 의해) 즉시 하위 프로세스 아래에서 깔개를 꺼내므로 sshpass
신호에 의해 종료됩니다 SIGHUP
.
그래서 이것은 작동합니다 :
sshpass -p '1234567*' sh -c 'ssh -L 1080:192.168.0.1:2222 [email protected] -p 4422 -f -C -N && sleep .1'