OpenSSH는 종료 시 도메인 소켓을 정리하지 않습니다.

OpenSSH는 종료 시 도메인 소켓을 정리하지 않습니다.

SSH 터널을 통해 원격 인스턴스의 다른 Unix 소켓에 연결된 로컬 Unix 소켓이 있습니다.

ssh -N -L $HOME/my.sock:/var/run/another.sock

그러나 ssh를 정상적으로 종료하면(예: ctrl+C 또는 SIGTERM) 문제가 $HOME/my.sock지속됩니다. 이건 청소가 안 된 것 같더라고요. 이에 대한 옵션/플래그가 있습니까?

이는 명령을 두 번째로 실행하면 기존 소켓 파일로 인해 실패하기 때문에 문제가 됩니다. (기존 소켓 파일을 덮어쓰는 "재사용" 플래그/옵션도 표시되지 않습니다.) 그리고 rm -f $HOME/my.sock.

답변1

간단히 대답하자면, 명령줄 플래그를 사용하여 제어할 수 있습니다.-o 'StreamLocalBindUnlink=yes'

긴 답변: ssh_config(5)를 참조하세요.

 StreamLocalBindUnlink
         Specifies whether to remove an existing Unix-domain socket file for local or
         remote port forwarding before creating a new one.  If the socket file already
         exists and StreamLocalBindUnlink is not enabled, ssh will be unable to forward
         the port to the Unix-domain socket file.  This option is only used for port for‐
         warding to a Unix-domain socket file.

         The argument must be yes or no (the default).

관련 정보