autossh를 사용하여 포트 전달 없이 지속적이고 다중화된 SSH 연결을 생성하시겠습니까?

autossh를 사용하여 포트 전달 없이 지속적이고 다중화된 SSH 연결을 생성하시겠습니까?

멀티플렉싱을 위해 구성된 SSH 세션을 유지하기 위해 autossh를 사용하고 싶습니다. 이를 통해 localhost에서 지속적인 SSH 연결을 활용하는 스크립트를 작성할 수 있습니다. ssh와 autossh가 동일하게 작동하도록 하는 데 문제가 있으며 누군가 나를 도와줄 수 있기를 바랍니다.

내 ~/.ssh/config 파일의 내용...

 Host cg*
    ServerAliveInterval 300
    ServerAliveCountMax 2

    ControlMaster auto
    ControlPath ~/.ssh/control:%h:%p:%r
    ControlPersist yes

기본 SSH 연결을 만드는 중...
$ ssh -fNn jehudson@cg5
$ ps aux | grep ssh
jehudson 11813 0.0 0.1 5744 628 ? Ss 18:42 0:00 ssh -fNn cg5

연결이 재사용되고 있는지 확인하세요...
$ ssh -O check cg5:
Master running (pid=11813)

기본 세션에서 세션 열기 및 닫기...
$ ssh cg5
$ ...
$ exit
Shared connection to cg5 closed.

이것은 잘 작동하는 것 같습니다. 이제 같은 일을 하고 싶지만 autossh를 사용하고 싶습니다.

기본 연결을 종료합니다...
$ ssh -O exit cg5
Exit request sent.

autossh를 통해 연결 열기...
$ autossh -M 0 -fNn jehudson@cg5
$ ps aux | grep autossh
jehudson 11826 0.0 0.1 3660 772 pts/1 S+ 18:45 0:00 grep --color=auto autossh

(!) 흠, 이상하네요... autossh가 시작되지 않는 것 같거나, 시작하더라도 매우 빨리 종료됩니다.

$ ps aux | grep ssh
jehudson 11823 0.0 0.1 5744 916 ? Ss 18:45 0:00 ssh: /home/jehudson/.ssh/control:cg5:22:jehudson [mux]

(!?) 터널이 열린 것 같은데, 생성 후 autossh가 계속 유지를 안 하더군요! 그리고 이번에 프로세스 설명에 제어 파일이 나열되는 이유는 무엇입니까?

$ ssh -O check cg5
Master running (pid=11823)

분명히 다중화된 SSH 세션이 설정되었지만 autossh에서는 모니터링되지 않습니다.
autossh가 허용하는 다양한 플래그 조합을 시도했지만 간단한 다중 SSH 연결을 열고 이를 백그라운드로 보내고 autossh로 모니터링하는 방법을 찾을 수 없습니다. 제가 놓쳤을 수 있는 내용을 발견했거나 시도해 볼 만한 제안 사항이 있으면 알려주시기 바랍니다.

답변1

autossh플레이가 잘 된 것 같진 않네요 ControlPersist. 활성화된 상태 로 두면 ControlPersist해당 기간이 지나면 연결이 종료됩니다. 그래서:

autossh -f -M0 -N -oControlPersist=no $DEST

관련 정보