我的~/.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
ClearAllForwardings
中有一个选项ssh_config
,它可以完全满足您的需要:
清除所有转发
指定清除配置文件或命令行中指定的所有本地、远程和动态端口转发。此选项主要用于从 ssh(1) 命令行清除配置文件中设置的端口转发,并由 scp(1) 和 sftp(1) 自动设置。参数必须是 yes 或 no(默认值)。
您可以将其用作命令行选项:
ssh -o ClearAllForwardings=yes host