서버에 대한 역방향 터널 연결을 설정하려면 초기화 스크립트가 필요합니다. 나는 다음과 같은 시작 스크립트를 생각해 냈습니다.
#! /bin/sh
### BEGIN INIT INFO
### END INIT INFO
case "$1" in
start)
echo "Starting autossh"
/usr/bin/autossh -M 22222 -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /path/to/my.key -R 9999:localhost:22 ubuntu@host
;;
stop)
echo -n "Shutting down autossh"
/usr/bin/killall -KILL autossh
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
문제가 있습니다. 백그라운드에서 프로세스가 시작되지 않습니다. 그렇지 않으면 예상대로 작동합니다. -f
플래그를 사용하고 start)
줄을 다음으로 변경해 보았 /usr/bin/autossh -f -M 22222
으나 작동하지 않는 것 같은데 그 이유를 알고 싶습니다. 내가 뭘 잘못하고 있는 거지? 매뉴얼 페이지에 다음과 같이 나와 있습니다.
-에프'SSH를 실행하기 전에 autossh가 백그라운드로 이동하도록 합니다.
여기서 무슨 일이 일어나고 있는 걸까요?
/var/log/syslog
서버 에서 다음을 볼 수 있습니다.
Nov 3 22:01:10 ip-172-31-33-223 systemd[1]: Started Session 1524 of user ubuntu.
플래그가 있든 없든 -f
, 즉 클라이언트가 연결을 설정 host
하지만 플래그가 있으면 -f
포트 9999에서 localhost를 통해 로그인할 수 없습니다... :o