我一直在尝试在我的笔记本电脑上设置某种配置,这样我就能够直接使用 SSH 连接到我可以间接访问的服务器,我在这里找到了一个很好的配置: https://superuser.com/a/303487/133737 到目前为止我已经做了这样的配置:
Host terzo , gw02, ipsec
ProxyCommand ssh zenoss nc -w 10 %h %p
但我希望能够 ssh 到例如zenipsec
,它会直接通过zenoss
我希望创造这样的东西:
Host zen*
ProxyCommand ssh zenoss nc -w 10 %h `echo %h | cut -f2-100 -dn`
我猜最后一部分`echo %h | cut -f2-100 -dn`
不起作用。有人可以帮忙吗?
答案1
我使用的有用配置是:
Host *%*
ProxyCommand ssh $(echo %h | cut -d%% -f2-) nc $(echo %h | cut -d%% -f1) %p
它允许您通过用符号分隔主机来设置任意跳转%
。例如,ssh zenipsec%zenoss
将通过 zenoss 跳转至 zenipsec。
答案2
您告诉 netcat 用作zenipsec
主机和ipsec
端口。以下内容应该正确:
nc -w 10 `echo %h | cut -f2-100 -dn` %p
一个更简洁的方法是编写一个充当 ProxyCommand 的脚本;例如,~/bin/proxycommand-zen
#!/bin/sh
host=$1
port=$2
exec ssh zenoss nc -w 10 ${host#zen} $port