这是我的 ssh 配置:
Host *.*
ProxyCommand /usr/bin/connect-proxy -S proxy.home.net:1080 %h %p
它为包含点的域设置了默认代理。我想将其更改为直接连接到与 *.home.net 匹配的主机。可以吗?
答案1
带感叹号的否定本地域名:
Host !*.home.net *.*
ProxyCommand /usr/bin/connect-proxy -S proxy.home.net:1080 %h %p
这适用于版本 6.3p1,但不适用于版本 5.3p1。
更新:新旧 ssh 的终极解决方案
# for old ssh where negations don't work
Host !*.home.net *.home.net
ProxyCommand ~/.ssh/netcat.sh %h %p
Host !*.home.net *.*
ProxyCommand /usr/bin/connect-proxy -S proxy.home.net:1080 %h %p
我的 msysgit 中没有 nc.exe。
~/.ssh/netcat.sh
:
#!/bin/bash
trap '' HUP # because ssh HUPs us after closing our stdin
exec 4<>"/dev/tcp/$1/$2" || exit 1
/bin/cat <&4 &
exec 1>&-
/bin/cat >&4 <&0
exec 0<&-
/bin/sleep 10
# sometime EOF never comes so kill the other cat
kill $!