让sshd监听特定的接口

在我的机器上,我使用了使用tun0接口的OpenVPN。 我希望sshd只能在这个接口上进行监听。

我知道,我可以指定IP地址来收听

/etc/ssh/sshd_config 

与一个

 ListenAddress 0.0.0.0 

指示。 但是我的IP地址会改变,所以我不能select一个永远有效的IP地址。 我知道,只有当VPN启动时,我才能启动守护进程 – 这不是问题。

我怎样才能让sshd只听一个特定的接口(tun0)?

由于sshd只能理解IP地址,所以你不能直接这样做。 你也许可以用openvpn的脚本把东西敲在一起

-up cmd Shell命令在成功打开TUN / TAP设备(预用户UID更改)后运行。 up脚本对于指定路由命令是有用的,这些命令将目的地为VPN连接另一端的私有子网的IPstream量路由到隧道中。

另请参阅--down选项以清除文档的相关部分,详细说明脚本安全性等。

您会发现tun设备的IP地址作为环境variables传递给脚本。 另外sshd在窗体的命令行上有选项

 -oSomeOption=SomeValue 

-o选项可用于以configuration文件中使用的格式提供选项。 这对于指定没有单独的命令行标志的选项很有用。 有关选项的详细信息及其值,请参见sshd_config(5)

所以你可以使用

 -o ListenAddress=<some address> 

大概你有一些与你的VPS交谈的带外方法,以便当这个rest时间,你可以联系服务器。