我最近编辑了我的SSH配置,以便Proxycommand链接到可执行的bash文件,我想执行一些逻辑。如果满足condition1
,那么我想执行某个Proxycommand。否则,我想要一个“禁止操作”;基本上我不想在这种情况下代理。
我的SSH配置如下:
Host *
ProxyCommand <link_to_bashfile> %h %p
但是,如果我只是在bash文件中没有做任何事情,我会收到以下错误:
ssh_exchange_identification: Connection closed by remote host
如果在bash文件中未满足ProxyCommand none
,是否有办法实质上模拟condition1
?谢谢!
答案 0 :(得分:2)
您可以使用-o
选项覆盖配置文件中的ProxyCommand
指令,这样您就可以运行ssh
而无需进入无限循环的代理命令。也就是说,在bash
文件中,
host=$1
port=$2
if <condition>; then
whatever the actual command is to connect
else
ssh -o ProxyCommand=none -p "$port" "$host"
fi
答案 1 :(得分:0)
原来以下代码有效:
host=$1
port=$2
if <condition>; then
whatever the actual command is to connect
else
exec nc $1 $2
fi