如何暫時停用本地轉發

如何暫時停用本地轉發

我的~/.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
....

有沒有整潔的使用sshrsync使用選項來停用會話的所有本機轉送?

顯然,我可以複製並貼上每個配置區塊,並建立一個帶有本地轉送的配置區塊和一個不帶本地轉送的配置區塊,但我希望有更好的解決方案。

答案1

ClearAllForwardings中有一個選項ssh_config,它正是您所需要的:

清除所有轉發

指定清除在設定檔或命令列中指定的所有本機、遠端和動態連接埠轉送。此選項主要在從 ssh(1) 命令列使用以清除設定檔中設定的連接埠轉送時有用,並且由 scp(1) 和 sftp(1) 自動設定。參數必須為 yes 或 no(預設值)。

您可以將其用作命令列選項:

ssh -o ClearAllForwardings=yes host

相關內容