로컬 전달을 일시적으로 비활성화하는 방법


13

~/.ssh/config파일 항목에 다음과 같은 로컬 전달 정의가 있습니다.

HOST myServer
   hostname 10.10.0.1
   user xyz
   LocalForward 8080 localhost:80
   LocalForward 4000 127.0.0.1:4000
   ...

이것은 매력처럼 작동하지만 일부 데이터를 동기화하는 스크립트도 있습니다.
이 스크립트는 이미 연결되어있는 동안 서버에 연결하려고 할 때 많은 경고를 표시합니다.

bind: Address already in use
channel_setup_fwd_listener_tcpip: cannot listen to port: 8080
bind: Address already in use
channel_setup_fwd_listener_tcpip: cannot listen to port: 4000
....

거기에 깔끔한 사용하는 방법 ssh또는 rsync세션에 대한 모든 지역의 전달을 비활성화하는 옵션은?

분명히 각 구성 블록을 복사하여 붙여 넣을 수 있고 로컬 전달이없는 블록을 만들고 붙여 넣을 수는 있지만 더 나은 해결책이 있기를 바랍니다.

답변:


14

에 필요한 ClearAllForwardings옵션 이 있습니다 ssh_config.

ClearAllForwardings

구성 파일 또는 명령 행에 지정된 모든 로컬, 원격 및 동적 포트 전달이 지워지도록 지정합니다. 이 옵션은 주로 ssh (1) 명령 행에서 구성 파일에 설정된 포트 전달을 지우는 데 유용하며 scp (1) 및 sftp (1)에 의해 자동으로 설정됩니다. 인수는 yes 또는 no 여야합니다 (기본값).

명령 행 옵션으로 사용할 수 있습니다.

ssh -o ClearAllForwardings=yes host

완벽-나는 문서를 충분히주의 깊게 읽었다 고 생각했다
jeb

2
누군가가 이것을 필요로하는 경우에 대비하여 git:GIT_SSH_COMMAND="/usr/bin/ssh -o ClearAllForwardings=yes"
user1338062

확실히 아닙니다 RemoteForward=no-같은 대답을 찾을 때 내가 찾던 종류입니다.
DouglasDD

또한 Warning: remote port forwarding failed for listen port XYZ이미 연결되어있을 때 메시지를 표시 하지 않습니다.
Jan

1
트윗 담아 가기 지금 수정했습니다. 죄송합니다. 오타 일 수 있습니다.
Jakuje
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.