我有我的~/.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与一个选项来禁用会话的所有本地转发?
显然我可以复制和粘贴每个configuration块,并build立一个和一个没有本地前锋,但我希望有一个更好的解决scheme。
在ssh_config有ClearAllForwardings选项,它正是你所需要的:
ClearAllForwardings
指定清除configuration文件或命令行中指定的所有本地,远程和dynamic端口转发。 当使用ssh(1)命令行清除在configuration文件中设置的端口转发时,此选项非常有用,并由scp(1)和sftp(1)自动设置。 参数必须是或不是(默认)。
你可以使用它作为命令行选项:
ssh -O ClearAllForwardings=yes host