Ubuntu에서 부팅 시 autossh를 사용하여 역방향 터널 시작하기

Ubuntu에서 부팅 시 autossh를 사용하여 역방향 터널 시작하기

시스템 시작 시 SSH 역터널을 시작하고 싶습니다. 아래 줄은 터널을 잘 설정하도록 해줍니다. 그러나 결국에는 server원하지 않는 방식으로 로그인하게 됩니다. 특히 init 스크립트에서는 로그인하지 않게 됩니다.

/usr/bin/autossh -M 22222 -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /path/to/my/key.key -R 9999:localhost:22 ubuntu@server

man autossh-f이 옵션이 내 요구 사항에 적합해야 한다고 말합니다 .

SSH를 실행하기 전에 autossh가 백그라운드로 이동하도록 합니다.

하지만 문제는 명령을 변경해도 작동하지 않는 것 같다는 것입니다 usr/bin/autossh -f -M.... 또한 다음과 같이 초기화 스크립트의 일부로 이 작업을 시도했습니다.

#! /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/the.key -R pppp:localhost:22 user@server
    ;;
    stop)
        echo -n "Shutting down utossk"
        /usr/bin/killall -KILL autossh
    ;;
    *)
        echo "Usage: $0 {start|stop}"
        exit 1
esac
exit 0

하지만 이를 백그라운드에 두는 옵션이 필요합니다. -f 옵션이 작동하지 않으면 어떻게 해야 합니까?

답변1

당신이 찾고있는 것은 -N옵션입니다. SSH 매뉴얼 페이지에서:

-N 원격 명령을 실행하지 않습니다. 이는 포트 전달에 유용합니다.

완전한 명령은 다음과 같습니다:

/usr/bin/autossh -M 22222 -f -N -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /path/to/my/key.key -R pppp:localhost:22 user@server

이것은 또한 내가 ( cron 과 함께 @reboot) 성공적으로 사용하고 있는 것이기도 합니다. 사용하려는 로컬 포트로
바꾸십시오 .pppp:

관련 정보