web-dev-qa-db-ja.com

ローカル転送を一時的に無効にする方法

私は~/.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を使用するニート方法はありますか?

もちろん、各構成ブロックをコピーして貼り付け、ローカル転送ありとなしの1つをビルドすることもできますが、もっと良い解決策があることを願っています。

13
jeb

ssh_configにはClearAllForwardingsオプションがあり、必要な機能を正確に実行します。

ClearAllForwardings

構成ファイルまたはコマンドラインで指定されたすべてのローカル、リモート、および動的ポート転送をクリアすることを指定します。このオプションは、構成ファイルで設定されたポート転送をクリアするためにssh(1)コマンドラインから使用される場合に主に役立ち、scp(1)およびsftp(1)によって自動的に設定されます。引数はyesまたはno(デフォルト)でなければなりません。

コマンドラインオプションとして使用できます。

ssh -o ClearAllForwardings=yes Host
14
Jakuje