SSH 多跳配置

SSH 多跳配置

我一直在尝试在我的笔记本电脑上设置某种配置,这样我就能够直接使用 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

相关内容